欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#笔记14 LINQ

程序员文章站 2022-07-03 23:33:28
...

简介

LINQ有很多,很复杂。可分为很多部分,比如

  1. LINQ to Objects
  2. LINQ to SQL
  3. LINQ to XML
  4. LINQ to Dataset
  5. LINQ to Entities
  • 本节只介绍LINQ to Objects。

  • 有专业的数目介绍LINQ,比如LINQ in action。

LINQ举例

LINQ查询,遍历一个集合

  • LINQ的语法,一般是from开头。
  • 类似于sql语法。
IEnumerable<Patent> patents = PatentData.Patents;
IEnumerable<Inventor> inventors = PatentData.Inventors;

var query = 
	from inventor in inventors
	select inventor;
// 返回的是Enumerable的类型

Print(query)

where筛选

var query = 
	from patent in patents
	where patent.YearOfPublication.StartsWith("18")
	select new { patent Title };

输出文件名及其最后修改时间(LINQ中定义临时变量使用let)

var query = 
	from filename in Directory.GetFiles("C:/")
	let fileinfo = new FileInfo(filename)
	select new { fileinfo.Name, fileinfo.LastWriteTime };

orderby排序

var query = 
	from filename in Directory.GetFiles("C:/")
	let fileinfo = new FileInfo(filename)
	orderby fileinfo.Length.descending
	select new { fileinfo.Name, fileinfo.LastWriteTime };

group by into

var query = 
	from inventor in inventors
	group inventor by inventor.Country into groups
	from item in groups
	orderby item.Country, item.Name
	select new { groups.Key, groups.Count(), item.Name };

select嵌套、join连接

  • 详细内容可以看《LINQ IN ACTION》。