Linq笔记

Linq交流笔记 

一、Linq是什么?

Linq是语言级集成查询(Language INtegrated Query),是微软在.Net 3.5中提出的一项新技术, Linq主要包含4个组件——Linq to Objects、Linq to XML、Linq to DataSet 和Linq to SQL。其架构图如下:

 

 其中:

(1)Linq to SQL :查询基于关系数据的数据,可以对数据库中的数据进行查询,修改,插入,删除,排序等操作;

(2)Linq to Dataset:查询DasaSet对象中的数据,并对数据进行增删改查的操作;

(3)Linq to Objects:处理对象和集合数据,可以查询IEnumberable 或IEnumberable<T>集合;

(4)Linq to XML:可以差选和操作XML文件。

 

重点关注Linq To Objects:LINQ to Objects的目标是为了操作对象集合,不管是什么操作,都可以看做是LINQ to Objects。只要引入System.Linq这个命名空间,就能够使用LINQ to Objects。 

 

好处:Linq 使操作这些数据源更加简单,方便和易于理解。

用一个例子来做说明:

 1 /// <summary>
 2         /// 初始化数组
 3         /// </summary>
 4         /// <param name="number">数组长度</param>
 5         /// <returns>整形数组</returns>
 6         private int[] InitData(int number)
 7         {
 8             int[] arrData = new int[number];
 9 
10             for (int i = 0; i < number; i++)
11             {
12                 arrData[i] = i + 1;
13             }
14 
15             return arrData;
16         }
17 
18 /// <summary>
19         /// 经常使用的方法:获取小于10的数据
20         /// </summary>
21         private void GetDataLessThanTenOld()
22         {
23             //获取数据源
24             int[] arrData = InitData(100);
25 
26             //定义结果数组
27             List<int> arrResult = new List<int>();
28 
29             //获取数据
30             foreach(int i in arrData)
31             {
32                 if (i <= 10)
33                 {
34                     arrResult.Add(i);
35                 }
36             }
37 
38             foreach (int j in arrResult)
39             {
40                 Response.Write(j + "&nbsp;");
41             }
42         }
43 
44         /// <summary>
45         /// 新的方法:获取小于10的数据
46         /// </summary>
47         private void GetDataLessThanTenNew()
48         {
49             //获取数据源
50             int[] arrData = InitData(100);
51 
52             var arrResult = from i in arrData
53                             where i <= 10
54                             select i;
55 
56             foreach (int j in arrResult)
57             {
58                 Response.Write(j + "&nbsp;");
59             }
60 
61         }
View Code

Linq基础用法

实现过程:

         (1)from :获取数据源 

         (2)where :筛选

         (3)orderby .. ascending:排序

         (4)group .. by ..: 分组

         (5) join :连接

         (6)select :选择

         

例子:

//实现过程
        private void SelectData()
        {
            int[] arrData = InitRandomData(100);

            var data = from i in arrData        //获取数据源
                       where i < 50             //筛选
                       orderby i descending     //排序
                       select i;                //选择

            foreach (int j in data)
            {
                Response.Write(j + "&nbsp;&nbsp;");
            }
        }

 

常用方法:

牛刀小试

 

 

原文地址:https://www.cnblogs.com/mjw1124/p/3583695.html