LINQ 标准查询操作符

时间:2021-05-26

推荐大家下载本文的PDF进行阅读,可以方便的使用书签来阅读各个方法,而且代码中的关键字是高亮显示的。
pdf版下载地址 https://parer<T>接口的实现类作为比较器,用于比较序列中的元素。
十四、分区操作符
LINQ 中的分区指的是在不重新排列元素的情况下,将输入序列划分为两部分,然后返回其中一个部分的操作。
下图显示对一个字符序列执行三个不同的分区操作的结果。第一个操作返回序列中的前三个元素。第二个操作跳过前三个元素,返回剩余的元素。第三个操作跳过序列中的前两个元素,返回接下来的三个元素。

1. Take
Take(int n)方法将从序列的开头返回数量为n的连续元素。以下代码演示了从一个序列中返回其前五个元素:
复制代码 代码如下:
int[] source = new int[] { 86, 2, 77, 94, 100, 65, 5, 22, 70, 55, 81, 66, 45 };
var q = source.Take(5);
foreach (var item in q)
{
Console.WriteLine(item);
}

上述代码的运行结果为下图所示:

2. TakeWhile
TakeWhile方法执行时将逐个比较序列中的每个元素是否满足指定条件,直到碰到不符合指定的条件的元素时,返回前面所有的元素组成的序列。以下代码演示了这一过程:
复制代码 代码如下:
int[] source = new int[] { 86, 2, 77, 94, 100, 65, 5, 22, 70, 55, 81, 66, 45 };
var q = source.TakeWhile(i => i < 100);
foreach (var item in q)
{
Console.WriteLine(item);
}

上述代码的运行结果为下图所示:

3. Skip
Skip(int n)方法将跳过序列开头的n个元素,然后返回其余的连续元素。以下代码演示了从一个序列中跳过前五个元素,然后返回其余的元素组成的序列:
复制代码 代码如下:
int[] source = new int[] { 86, 2, 77, 94, 100, 65, 5, 22, 70, 55, 81, 66, 45 };
var q = source.Skip(5);
foreach (var item in q)
{
Console.WriteLine(item);
}

上述代码的运行结果为下图所示:

4. SkipWhile
SkipWhile方法执行时将逐个比较序列中的每个元素是否满足指定条件,直到碰到不符合指定的条件的元素时,返回其余所有的元素组成的序列。以下代码演示了这一过程:
复制代码 代码如下:
int[] source = new int[] { 86, 2, 77, 94, 100, 65, 5, 22, 70, 55, 81, 66, 45 };
var q = source.SkipWhile(i => i < 100);
foreach (var item in q)
{
Console.WriteLine(item);
}

上述代码的运行结果为下图所示:

本文总结
本文介绍了LINQ标准查询操作符。没有这些操作符,LINQ就不会存在。本文为理解这些操作符的功能提供了很好的基础。了解它们将会很有帮助,因为LINQ的各种Provider都是基于这些操作符来完成各自丰富的功能。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章