分区运算符将序列(集合)分为两部分,并返回其中一部分。
Take()扩展方法返回从第一个元素开始的指定数量的元素。
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 运算符。但是,您可以对查询变量使用 Take/takedwhile 方法,或者将整个查询包装到括号中,然后调用 Take/takedwhile ()。
Dim takeResult = From s In studentList Take 3 Select s
TakeWhile()扩展方法返回给定集合中的元素,直到指定的条件为true。如果第一个元素本身不满足条件,则返回一个空集合。
TakeWhile方法有两个重载方法。一种方法接受Func<TSource, bool>类型的谓词,另一种重载方法接受Func<TSource, int, bool>通过元素索引的谓词类型。
在下面的示例中,TakeWhile()方法返回一个包含所有元素的新集合,直到找到长度小于4个字符的字符串为止。
示例: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()返回仅包含第一元素,因为第二字符串元素不满足该条件。
TakeWhile 还在谓词函数中传递当前元素的索引。下面的 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