实现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:\northwind.mdf");
实现LINQ查询语句之创建查询:
查询要先存储在查询变量中,并用查询表达式进行初始化。这个查询变量不执行任何操作也不返回数 据,只有在执行查询时用来存储为生成结果而必须的信息。
实现LINQ查询语句之执行查询:
上例中使用foreach的地方就是检索查询结果的地方,它在创建后才执行,因此称为延迟执行,num保 存返回的值。
当需要用到聚合函数查询时,则是强制立即执行
var numQuery = from num in numbers where (num%2) == 0 select num;
int evenNumCount = evenNumCount.Count();
若普通查询也要立即执行,可以在查询语句后调用ToList()或ToArray()方法。
以上就是对如何实现LINQ查询语句的简单介绍。