您好,登錄后才能下訂單哦!
Linq中的SkipWhile
1、含義
(1)、對數據源進行枚舉,從第一個枚舉得到的元素開始,調用客戶端的predicate
(2)、如果返回true,則跳過該元素,繼續進行枚舉操作.
(3)、但是,如果一旦predicate返回為false,則該元素以后的所有元素,都不會再調用predicate,而全部枚舉給客戶端.
2、實例
int[] grades = { 59, 82, 70, 56, 92, 98, 85 }; IEnumerable<int> lowerGrades = grades .OrderByDescending(grade => grade) .SkipWhile(grade => grade >= 80); Console.WriteLine("All grades below 80:"); foreach (int grade in lowerGrades) { Console.WriteLine(grade); } /**//* This code produces the following output: All grades below 80: 70 59 56 */
二、Linq中的TakeWhile
1、含義
(1)、對數據源進行枚舉,從第一個枚舉得到的元素開始,調用客戶端傳入的predicate( c.Name == ""woodyN")
(2)、如果這個predicate委托返回true的話,則將該元素作為Current元素返回給客戶端,并且,繼續進行相同的枚舉,判斷操作.
(3)、但是,一旦predicate返回false的話,MoveNext()方法將會返回false,枚舉就此打住,忽略剩下的所有元素.
2、實例
string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" }; IEnumerable<string> query = fruits.TakeWhile(fruit => String.Compare("orange", fruit, true) != 0); foreach (string fruit in query) { Console.WriteLine(fruit); } /**//* This code produces the following output: apple banana mango */
參考資料:Linq中的TakeWhile和SkipWhile http://www.studyofnet.com/news/872.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。