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 + " "); 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 + " "); 59 } 60 61 }
实现过程:
(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 + " "); } }
常用方法:
原文:http://www.cnblogs.com/mjw1124/p/3583695.html