Linq中的SkipWhile
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、北戴河網(wǎng)站維護(hù)、網(wǎng)站推廣。
1、含義
(1)、對數(shù)據(jù)源進(jìn)行枚舉,從第一個枚舉得到的元素開始,調(diào)用客戶端的predicate
(2)、如果返回true,則跳過該元素,繼續(xù)進(jìn)行枚舉操作.
(3)、但是,如果一旦predicate返回為false,則該元素以后的所有元素,都不會再調(diào)用predicate,而全部枚舉給客戶端.
2、實(shí)例
int[] grades = { 59, 82, 70, 56, 92, 98, 85 }; IEnumerablelowerGrades = 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)、對數(shù)據(jù)源進(jìn)行枚舉,從第一個枚舉得到的元素開始,調(diào)用客戶端傳入的predicate( c.Name == ""woodyN")
(2)、如果這個predicate委托返回true的話,則將該元素作為Current元素返回給客戶端,并且,繼續(xù)進(jìn)行相同的枚舉,判斷操作.
(3)、但是,一旦predicate返回false的話,MoveNext()方法將會返回false,枚舉就此打住,忽略剩下的所有元素.
2、實(shí)例
string[] fruits = { "apple", "banana", "mango", "orange", "passionfruit", "grape" }; IEnumerablequery = 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