分區(qū)運(yùn)算符將序列(集合)分為兩部分,并返回其中一部分。
Take()擴(kuò)展方法返回從第一個(gè)元素開(kāi)始的指定數(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# 查詢語(yǔ)法不支持 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>類(lèi)型的謂詞,另一種重載方法接受Func<TSource, int, bool>通過(guò)元素索引的謂詞類(lèi)型。
在下面的示例中,TakeWhile()方法返回一個(gè)包含所有元素的新集合,直到找到長(zhǎng)度小于4個(gè)字符的字符串為止。
示例:C#中的TakeWhile方法返回字符串長(zhǎng)度大于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 方法示例接受元素,直到字符串元素的長(zhǎng)度大于它的索引
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