代码改变世界

C#3.0(四)--Linq to Objects

2011-04-04 18:53  杨延成  阅读(388)  评论(2编辑  收藏  举报
Linq(Language Integrated Query )查询语法跟SQL查询语法很相识,除了先后顺序.

1 //Demo
2 namespace TestLINQ
3 {
4 class Program
5 {
6 static void Main(string[] args)
7 {
8 ///创建数据源
9 int[] numbers = new int[] { 0, 1, 2, 3, 4, 5, 6 };
10 ///创建查询
11 /// 查询会返回 IEnumerable 类型,我们可以直接去获取
12 /// IEnumerable numQuery =
13 /// from num in numbers
14 /// where (num % 2) == 0
15 /// select num;
16 /// C#3.0为我们提供了隐式声明,这里可以使用
17 /// 下面这个查询的语义表示:
18 /// from num :查询num 即查询出来的值赋给引用num,num无需事先声明
19 /// in numbers:在numbers这个数据源中查询(数据源可以是数组,集合,数据集,XML等),这里是数组;
20 /// where (num % 2) == 0:查询条件,现查询可以被2整除的数,即偶数
21 /// select num:查询值
22 ///如果把这句查询变成我们熟悉的SQL,那么是:select num from numbers where num%2==0
23 ///这个是更容易理解些 ,如果用过HQL查询就更好了
24
25 var numQuery =
26 from num in numbers
27 where (num % 2) == 0
28 select num;
29 /// 执行查询
30 /// 遍历输出
31 foreach (int num in numQuery)
32 {
33 Console.WriteLine("{0,1} ", num);
34 }
35 }
36 }
37 }


具体,此查询执行步骤可以参见以下这张图片,
 

总结:
  1.linq可以在数据源中进行查询,数据源可以是数组,集合,数据集,XML等。
  2.查询语法类似SQL,但是顺序不同。
  3.在遍历查询结果时,才真正执行查询。
  4.查询会返回IEnumerable类型的引用。
  5.程序主要分为三步:获得数据源,创建查询,执行查询。