标准查询运算符
标准查询运算符由一系列API方法组成
序列指实现了Ienumerable<>接口的类,包括List<>,Dictionary<>,Stack<>,Array等
标准查询运算符的签名
扩展方法是公共的静态方法,尽管定义在一个类中,但目的是为另一个类(第一个形参)增加功能,该参数前必须有关键字this
查询表达式和标准查询运算符
每一个查询表达式还可以使用带有标准查询运算符的方法语法来编写。编译器把每一个查询表达式翻译成标准查询运算符的形式
将委托作为参数
很多运算符接受泛型委托作为参数。
泛型委托用于给运算符提供用户自定义的代码
LINQ 预定义的委托类型
返回类型参数有一个out关键字,是指可以发生协变,也就是说可以接受声明的类型或从这个类型派生的类型。输入参数有一个关键字in,是指可以发生逆变,也就是可以接受声明的类型或从这个类派生的类型
看Count的声明,第二个参数必须是委托对象,它接受单个T类型的参数作为方法参数并且返回一个bool类型的值。这种形式的委托称为谓词
使用委托参数的示例
输出:4