Welcome

首页 / 软件开发 / LINQ / 教你如何实现LINQ查询语句

教你如何实现LINQ查询语句2011-08-07shenqian5337实现LINQ查询语句有三个步骤,他们分别是获取数据源(任何查询的必备工作)、创建查询、执行查询 。本文就从这三个方面对实现LINQ查询语句做简单的介绍。

示例:

class IntroToLINQ
{
static void Main()
{
//获取数据源(此处由一个数组充当)
int[] numbers = new int[7]{0,1,2,3,4,5,6};
//创建查询(numQuery 是 IEnumerable 类型)
var numQuery = from num in numbers where (num% 2) ==
0 select num;
// 执行查询
foreach(int num in numQuery)
{
Console.write("{0,1}",num);
}
}
}

实现LINQ查询语句之数据源:

上面示例中,数据源是一个数组,隐式支持泛型IEnumerable(T)接口,而支持IEnumerable(T)或派生 接口的类型称为"可查询类型"。因此数组即可用LINQ进行查询。

如果数据源还没有作为可查询类型出现在内存中,则LINQ提供程序必须以此方式表示数据源。例 如,LINQ to XML将 xml文档加载到可查询的XElement类型中:

using System.Xml.Linq
XElement contacts = XElement.Load(@"c:my.xml");//XElement 表示一个xml元素

在LINQ to SQL 中,必须先创建对象关系映射,然后针对这些对象编写查询。LINQ会处理对象查询与 数据库间的通信。

using System.Data.Linq;
DataContext db = new DataContext(@"c: orthwind.mdf");

实现LINQ查询语句之创建查询:

查询要先存储在查询变量中,并用查询表达式进行初始化。这个查询变量不执行任何操作也不返回数 据,只有在执行查询时用来存储为生成结果而必须的信息。

实现LINQ查询语句之执行查询:

上例中使用foreach的地方就是检索查询结果的地方,它在创建后才执行,因此称为延迟执行,num保 存返回的值。

当需要用到聚合函数查询时,则是强制立即执行

var numQuery = from num in numbers where (num%2) == 0 select num;
int evenNumCount = evenNumCount.Count();

若普通查询也要立即执行,可以在查询语句后调用ToList()或ToArray()方法。

以上就是对如何实现LINQ查询语句的简单介绍。