分區(qū)運(yùn)算符將序列(集合)分為兩部分,并返回其中一部分。
Take()擴(kuò)展方法返回從第一個(gè)元素開始的指定數(shù)量的元素。
IList<string> strList = new List<string>(){ "One", "Two", "Three", "Four", "Five" }; var newList = strList.Take(2); foreach(var str in newList) Console.WriteLine(str);
One Two
C# 查詢語法不支持 Take & takedwhile 運(yùn)算符。但是,您可以對(duì)查詢變量使用 Take/takedwhile 方法,或者將整個(gè)查詢包裝到括號(hào)中,然后調(diào)用 Take/takedwhile ()。
Dim takeResult = From s In studentList Take 3 Select s
TakeWhile()擴(kuò)展方法返回給定集合中的元素,直到指定的條件為true。如果第一個(gè)元素本身不滿足條件,則返回一個(gè)空集合。
TakeWhile方法有兩個(gè)重載方法。一種方法接受Func<TSource, bool>類型的謂詞,另一種重載方法接受Func<TSource, int, bool>通過元素索引的謂詞類型。
在下面的示例中,TakeWhile()方法返回一個(gè)包含所有元素的新集合,直到找到長度小于4個(gè)字符的字符串為止。
示例:C#中的TakeWhile方法返回字符串長度大于4的元素
IList<string> strList = new List<string>() { "Three", "Four", "Five", "Hundred" }; var result = strList.TakeWhile(s => s.Length > 4); foreach(string str in result) Console.WriteLine(str);
Three
在上面的示例中,TakeWhile()返回僅包含第一元素,因?yàn)榈诙址夭粷M足該條件。
TakeWhile 還在謂詞函數(shù)中傳遞當(dāng)前元素的索引。下面的 TakeWhile 方法示例接受元素,直到字符串元素的長度大于它的索引
IList<string> strList = new List<string>() { "One", "Two", "Three", "Four", "Five", "Six" }; var resultList = strList.TakeWhile((s, i) => s.Length > i); foreach(string str in resultList) Console.WriteLine(str);
One Two Three Four