C#基础学习--LINQ(2

标准查询运算符

标准查询运算符由一系列API方法组成

序列指实现了Ienumerable<>接口的类,包括List<>,Dictionary<>,Stack<>,Array等

C#基础学习--LINQ(2_第1张图片

C#基础学习--LINQ(2_第2张图片

C#基础学习--LINQ(2_第3张图片

C#基础学习--LINQ(2_第4张图片

 标准查询运算符的签名

扩展方法是公共的静态方法,尽管定义在一个类中,但目的是为另一个类(第一个形参)增加功能,该参数前必须有关键字this

C#基础学习--LINQ(2_第5张图片

C#基础学习--LINQ(2_第6张图片

 查询表达式和标准查询运算符

每一个查询表达式还可以使用带有标准查询运算符的方法语法来编写。编译器把每一个查询表达式翻译成标准查询运算符的形式

C#基础学习--LINQ(2_第7张图片

将委托作为参数

很多运算符接受泛型委托作为参数。

泛型委托用于给运算符提供用户自定义的代码

C#基础学习--LINQ(2_第8张图片

C#基础学习--LINQ(2_第9张图片

 LINQ 预定义的委托类型

C#基础学习--LINQ(2_第10张图片

 返回类型参数有一个out关键字,是指可以发生协变,也就是说可以接受声明的类型或从这个类型派生的类型。输入参数有一个关键字in,是指可以发生逆变,也就是可以接受声明的类型或从这个类派生的类型

看Count的声明,第二个参数必须是委托对象,它接受单个T类型的参数作为方法参数并且返回一个bool类型的值。这种形式的委托称为谓词

C#基础学习--LINQ(2_第11张图片

使用委托参数的示例

C#基础学习--LINQ(2_第12张图片 输出:4

使用Lambda表达式参数的示例

你可能感兴趣的:(C#,C#)