一、什么是LINQ
LINQ(读音link)代表语言集成查询(Language Integrated Query),是.NEt框架的扩展,它允许我们用SQL查询数据库的方式来查询数据的集合,使用它,你可以从数据库、程序对象的集合以及XML文档中查询数据
下面一个简单的示例,可以查询数组中小于8的数字并输出。
一般步骤:获取数据源、创建查询、执行查询。需要注意的是,尽管查询在语句中定义,但直到最后的foreach语句请求其结果的时候才会执行
using System; using System.Collections.Generic; using System.Linq; namespace LINK查询 { class Program { static void Main(string[] args) { int[] number = { 2, 4, 6, 8, 10 }; //获取数据源 IEnumerable<int> lowNum = from n in number //创建并存储查询,不会执行操作 where n < 8 select n; foreach(var val in lowNum) //执行查询 { Console.Write("{0} ", val); } Console.ReadKey(); } } } |
二、查询表达式的结构
查询表达式由查询体后的from子句组成,其子句必须按一定的顺序出现,并且from子句和select子句这两部分是必须的。先介绍一下子句
2.1 from子句
from子句指定了要作为数据源使用的数据集合,它的语法是:
from Type Item in Items |
其中Type是集合中元素的类型,是可选的,因为编译器可以从集合来推断类型。 Item是迭代变量的名字。 Items是要查询的集合的名字,必须是可枚举类型的
它和foreach比较相似,但foreach语句在遇到代码时就执行其主体,二from子句什么也不执行。它创建可以执行的后台代码对象,只有在程序的控制流遇到访问查询变量的语句时才会执行
2.2 join子句
如果您对SQL中的join比较熟悉的话,那么LINQ中的join对你来说也不是什么难事