LINQ学习笔记(7) 标准查询运算符(上)

  今天是元旦假期的第三天,明天就要开始上班了,所以想借今天的时间总结一下LINQ中标准查询运算符的知识,因为此部分内容比较多,所以我想用上,下两篇来介绍它,其中上篇要介绍的内容是标准查询运算符介绍,查询表达式和方法语法组合和标准查询运算符的签名。

标准查询运算符介绍:

标准查询运算符由一系列叫做API的方法组成,它能让我们查询任何.NET数组或集合。

1,有关标准查询运算符的重要特性:

  1> 被查询的集合对象叫做序列,它必须实现IEnumerable<T>接口,其中T是类型。

  2> 标准查询运算符使用方法语法。

  3> 运算符一般返回两种结果,一种是IEnumerable对象,另一种是返回标量,返回标量的立即执行,而返回可枚举类型对象的值会被延迟迭代。

2,示例:

1 static void Main(string[] args)
2 {
3 int[] numbers = { 2, 4, 6 };//numbers为IEnumerable<T>对象,在这里T代表int。
4

5 int howMany = numbers.Count();//Count为运算符,它是扩展了IEnumerable<T>泛型的扩展方法。
6

7 Console.WriteLine("Count:{0}",howMany);
8 Console.ReadKey();
9 }

查询表达式和标准查询运算符(方法语法)组合:

查询表达式和方法语法可以组合使用,请看下面示例:

 1 class Program
2 {
3 static void Main(string[] args)
4 {
5 int[] numbers = { 2,6,4,8,10};
6
7 int howMany = (from n in numbers//查询表达式和运算符组合使用
8 where n < 7

9 select n).Count();
10
11 Console.WriteLine("Count:{0}",howMany);
12 Console.ReadKey();
13 }
14 /*
15 输出结果:Count:3
16 */

17 }

标准查询运算符的签名:

System.Linq.Enumerable类声明了标准查询运算符方法。然而这些方法不仅仅是一些方法,它们是扩展了IEnumerable<T>泛型的扩展方法。

下面是三个运算符的签名:Count,First和Where.

public static         int               Count<T>(this IEnumerable<T> source );

public static          T             First<T>(this IEnumerable<T> source);
public static  IEnumberable<T> Where(this IEnumerable<T> source,...);

由以上签名,我们需要了解运算符的签名的重要事项如下:

1,它们必须声明为public和static。

2,它们必须在第一个参数前有this扩展指示器。

3,必须把IEnumerable<T>作为第一个参数。

 

以上就是标准运算符(或叫方法语法)上篇的内容,接下来会总结下篇的内容,希望朋友们继续关注。

原文地址:https://www.cnblogs.com/mcgrady/p/2310882.html