Welcome

首页 / 软件开发 / LINQ / Linq系列:基础与本质(Part I)

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.dllDefines the types that represent the core LINQ API. This is the one assembly you must have access to.
System.Data.Linq.dllProvides functionality for using LINQ with relational databases (LINQ to SQL).
System.Data.DataSetExtensions.dllDefines a handful of types to integrate ADO.NET types into the LINQ programming paradigm (LINQ to DataSet).
System.Xml.Linq.dllProvides 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