前两天公司进了一批书,在借阅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。

最新文章

  1. CentOS 6.5 下安装 Redis 2.8.7
  2. sql while 遍历表
  3. sizzle源码分析 (3)sizzle 不能快速匹配时 选择器流程
  4. java的反射机制
  5. cannot modify header information 关于实现widget页面跳转的问题
  6. poj3186 poj3267
  7. android usb host 读写USB设备
  8. 《STL源码剖析》环境配置
  9. Java深入研究【1、object类】
  10. asp.net core mvc实现伪静态功能
  11. 201521145048《Java程序设计》第5周学习总结
  12. Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in
  13. 【转】让EntityManager的Query返回Map对象
  14. 【转载】ASP.NET Core 依赖注入
  15. 7.01-beautiful_soup
  16. TX2 开发套件串口
  17. np.percentile获取中位数、百分位数
  18. [转]MySQL 数据类型(二)
  19. 【JD的一人戏】之"小羊踢足球"第一篇
  20. java之静态代理

热门文章

  1. Windows在配置Python+tornado
  2. DropDownListFor使用ViewData进行绑定的示例
  3. POJ 1637 Sightseeing tour(最大流)
  4. CentOS-6.3安装配置SVN
  5. NetMQ
  6. C++多线程分析
  7. elasticsearch集群搭建实例
  8. 通过 C# 代码操作 Google 日历
  9. Springmvc+Spring+Hibernate搭建方法
  10. ASP.NET WebForm路由模拟