c# in deep 之LINQ简介(1)
前两天公司进了一批书,在借阅jon skeet的c# in deep收获颇大,本书特点是介绍了不同版本的c#所增加的新特性。今天先写一下书中对linq的描述。
很多初学者在使用VS2010或2013写代码时都会看见软件会自动帮我们引用linq这个命名空间,而不知其作用。linq全称为language integrated query,即语言集成查询,是c#3的核心所在,可使对多数据源的查询变得简单。
比如一段代码有一个Products类,其包含Name和Price两个属性。我们现在需要在原基础上增加一个suppliers类,其包含Name和SupplierID两个属性,这样需要在Products类中也增加SupplierID这一属性。假设需要筛选价格高于10的产品,结果先按供货商名进行排序,再按产品名排序,最后打印供货商名和产品名。若是不使用linq可能需要很多代码才能实现,现在我们用linq来实现这一功能。
var filtered =from p in Products join s in Suppliers
on p.SupplierID equals s.SupplierID where p.Price>10 orderby s.Name,p.Name
select new{SupplierName=s.Name, ProductName=p.Name}
foreach(var v in filtered)
{Console.WriteLine("Supplier={0}---Product={1}",v.SupplierName,v.ProductName);}
通过这段代码,我们会发现,这和SQL语言太像了,这大大降低了我们使用linq的难度。下章介绍一下使用linq读取xml。
最新文章
- CentOS 6.5 下安装 Redis 2.8.7
- sql while 遍历表
- sizzle源码分析 (3)sizzle 不能快速匹配时 选择器流程
- java的反射机制
- cannot modify header information 关于实现widget页面跳转的问题
- poj3186 poj3267
- android usb host 读写USB设备
- 《STL源码剖析》环境配置
- Java深入研究【1、object类】
- asp.net core mvc实现伪静态功能
- 201521145048《Java程序设计》第5周学习总结
- Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in
- 【转】让EntityManager的Query返回Map对象
- 【转载】ASP.NET Core 依赖注入
- 7.01-beautiful_soup
- TX2 开发套件串口
- np.percentile获取中位数、百分位数
- [转]MySQL 数据类型(二)
- 【JD的一人戏】之";小羊踢足球";第一篇
- java之静态代理