首页 > 代码库 > Linq学习笔记1

Linq学习笔记1

1、Linq查询操作包含以下三个不同的、独立的动作:
     获取数据源
     创建查询
     执行查询

2、Linq查询的执行分为两种:
     ※延迟执行
       创建查询时,查询变量本身不执行查询,不包含任何数据,也不会采取其他任何形式的动作。它只不过是一个查询占位符,是一个IEnumerable对象,当枚举此对象的元素时,查询才得以执行。
     ※立即执行
       任何返回单个值的Linq查询都会被立即执行,如Count、Max等,也可以通过调用ToList、ToArray方法来强制查询立即执行。当希望对查询的结果进行缓存时这种做法很有用。

3、T-SQL查询按照下面的顺序以一定的逻辑处理查询:
     (8) select
     (9) top
     (1) from
     (3) join
     (2) on
     (4) where
     (5) group by
     (6) with
     (7) having
     (10) order by
     Linq查询和T-SQL查询的执行很相似。

4、当类型已知时尽量少使用var,过多的使用会降低源代码对后续开发人员的可读性。

5、Linq Provider是一个库,能实现标准查询操作符为某种特定类型的数据源所提供的功能,它的责任是执行一个给定的查询或将其交给另一个引擎来执行。Linq有多个提供程序:Linq to XML,Linq to Datasets,Linq to Objects,Linq to SQL。

6、int[] number1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

      int[] number2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

      var f1 = number1.SequenceEqual(number2);

      var f2 = number1.Equals(number2);

      f1返回true,f2返回false,因为SequenceEqual通过并行地枚举两个数据源并比较相应元素是否相同,而Equal比较的是否引用了同一个对象。

Linq学习笔记1