1、LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。
2、LINQ包括五个部分:LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML。LINQ to SQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。LINQ to XML在System.Xml.LINQ命名空间下实现对XML的操作。采用高效、易用、内存中的XML工具在宿主编程语言中提供XPath/XQuery功能等。
3、扩展方法本质上是一个静态方法,不同之处在于它的第一个参数必须有this关键字声明,并且第一个参数的类型即为要扩展的类型。扩展方法可以在不修改现有类的情况下,为现有类增加公共的接口(不是C#中的interface)。定义扩展方法需要注意,只能在静态类中定义并且是静态方法,如果扩展方法名和原有方法名发生冲突,那么扩展方法将失效。
4、Lambda表达式:
(参数列表) =>{语句块;} 或者
( 参数列表) =>表达式
当参数列表中只有一个参数的时候,圆括号可以省略
5、Var:隐式类型化变量:使用与可以由编译器推导出的变量的声明,不需要显式指定对象的类型。注意var只是省下了显式声明的过程,而C#本身就是静态语言,所以var所声明的变量的类型已经确定任然是不能改变的,亦即,var并非是变体类型。
6、只要是实现了IEnumerable<T>的对象都可以使用Linq的语法来查询。
7、在C#3.0中,为Linq引入了一些新的关键字,from join where group into let orderby select。
8、Linq查询的执行结果是IEnumerable<T>类型,而对IEnumerable<T>,在内部,C#通过yield关键字实现迭代器达到延迟加载的目的。从而使Linq查询只是在需要的时候才会被执行。但是,某一些扩展方法在执行时会试图遍历整个容器,从而使延迟加载无效,如排序,聚合函数(Count,Sum,Average等。)。
原文:http://www.cnblogs.com/xiangyueqiaomai/p/5652345.html