Linq系列:基础与本质(Part I)2011-07-17gjcn之前写过一些C#3.x新的特性。请参考:C#3.x特性,我们知道这些新的特性基本都是为实现LINQ服务的,在平常的编程中也可以有选择的合 理应用,也会有效提高编码效率,实现可读性比较强的简洁代码。在认识这些特性的基础上,理解认识LINQ将变得简单了。1 LINQ简介:LINQ 查询表达式(query expressions )可以使用统一的方式对实现IEnumberable<T>接口的对象、关系数据库、数据集(Datasets )以及XML文档进行访问。严格的说,LINQ是用来描述一系列数据访问技术的术语。LINQ to Objects 适用于实现IEnumberable<T>接口的对象,LINQ to SQL 适用于关系数据库, LINQ to DataSet is则是 LINQ to SQL的一个子集, LINQ to XML 适用于XML 文档。LINQ 查询表达式 是强类型的 (strongly typed),因此编译器会确保其语法正确性。LINQ是一个可扩展技术,第三方可以使用扩展函数来定义新的查询操作符。2LINQ核心程序集(Assembly)至少需要引用System.Linq 命名空间,在System.Core.dll中定义,Visual stuodio 2008默认会自动添加引用。
System.Core.dll | Defines the types that represent the core LINQ API. This is the one assembly you must have access to. |
System.Data.Linq.dll | Provides functionality for using LINQ with relational databases (LINQ to SQL). |
System.Data.DataSetExtensions.dll | Defines a handful of types to integrate ADO.NET types into the LINQ programming paradigm (LINQ to DataSet). |
System.Xml.Linq.dll | Provides functionality for using LINQ with XML document data (LINQ to XML). |
3 LINQ例子Code
1 static void QueryOverInts()
2 {
3 int[] numbers = { 10, 20, 28, 40, 1, 3, 5, 8 };
4 IEnumerable<int> subset = from i in numbers
5 where i < 10
6 select i;
7 IEnumerable<int> subset1 = numbers.Where( j => j < 10 ).
8 OrderBy( j => j );
9 foreach( int i in subset )
10 Console.WriteLine( "Item: {0}", i );
11 foreach( int i in subset1 )
12 Console.WriteLine( "Item: {0}", i );
13
14