Linq使用方法
来源:互联网 发布:java multieditor 编辑:程序博客网 时间:2024/06/08 15:59
Linq是一种面向对象的查询方式,它和SQL语句及其类似,sql写法 select * from 表 Linq写法 from n in 数据源 select n;
为什么不跟sql写法一样将select一同写在语句的开头呢?主要是当时做IDE时考虑到智能感应,将select写在语句头不利于编程环境的智能感应,其中的奥妙自行百度理解哈,这边不详讲
Linq的查询对象可以是所有实现了IEnumerable的类型,比如数组,数据库集合(DataTable,DataSet...),Arraylist,List,
用Linq这种写法对于我们来说更加的直观,当然你也可以使用foreach和for。相对于这两种查询语句,Linq执行的效率和性能要优胜,
Linq>foreach>for
//--------------------单值选择查询------------------------ var queryResults1 = customers.Select(c => c.id).Distinct(); //customers是模型类 var queryResults2 = (from c in customers select c.id).Distinct();
只是个声明,dlinq并没有真正把数据取出来,只有当你需要该数据的时候,它才会帮你去取,这就是延迟加载(deferred loading)。如果,你想在声明的时候就希望dlinq帮你取到数据,你可以使用ToList() 或ToArray()方法。
//--------------------单值选择查询------------------------ var queryResults1 = customers.Select(c => c.id).Distinct().ToArray(); //customers是模型类 var queryResults2 = (from c in customers select c.id).Distinct().ToList();
ToDictionary()LINQ扩展方法
ToList() 使用IEnumerable<T>并将其转换为 List<T>,那么 ToDictionary()也是类似的。大多数情况ToDictionary()是一个非常方便的方法,将查询的结果(或任何 IEnumerable<T>)转换成一个Dictionary<TKey,TValue>。 关键是您需要定义T如何分别转换TKey和TValue。
如果说我们有超级大的产品列表,希望把它放在一个Dictionary<int, product>,这样我们可以根据ID得到最快的查找时间。 你可能会这样做:
1 var results = new Dictionary<int, Product>();2 foreach (var product in products)3 {4 results.Add(product.Id, product);5 }
和它看起来像一个很好的代码,但是我们可以轻松地使用LINQ而无需手写一大堆逻辑:
1 var results = products.ToDictionary(product => product.Id);
它构造一个Dictionary<int, Product> ,Key是产品的Id属性,Value是产品本身。 这是最简单的形式ToDictionary(),你只需要指定一个key选择器。 如果你想要不同的东西作为你的value? 例如如果你不在乎整个Product,,你只是希望能够转换ID到Name? 我们可以这样做:
1 var results = products.ToDictionary(product => product.Id, product => product.Name);
这将创建一个 Key为Id,Value为Name 的Dictionary<int, string>,。由此来看这个扩展方法有很多的方式来处理IEnumerable<T> 集合或查询结果来生成一个dictionary。
补充阅读:http://www.cnblogs.com/haorui/p/4516208.htmlhttp://www.cnblogs.com/YuanSong/archive/2012/08/02/2619651.html
- Linq使用方法
- Linq 的使用方法
- linq 查询和使用方法
- 二、LinQ使用方法
- 初步学习Linq的使用方法表达式
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- LINQ
- 自学Android之UI组件:(四)Fragment的基本使用(下)
- form-group 两种常用使用
- java的项目如何部署到tomcat上
- JAVA数据结构
- 综合实例
- Linq使用方法
- 使用CallableStatement执行存储过程
- Basic Switch Operation 阅读笔记
- apktool的反编译工具的使用
- 如何提交表单file 与text 并获取其中的值
- CC2530 输入输出配置、中断配置、时钟、串口配置
- POJ 2187 Beauty Contest 旋转卡壳
- subplot的用法
- $_SERVER相关参数小结