在向大家详细介绍LINQ基础之前,首先让大家了解下LINQ 的历史和LINQ是什么,然后全面介绍LINQ基础。
LINQ 的历史
最初由 Anders Hejlsberg 构思,最初的研究计划称为 Cω
2005年9月 – 第一个为 C# 2.0 开发的技术预览版在当年的 PDC(微软开发者大会)上发布
2005年11月 – 更新至社区预览版(C# 2.0)
2006年1月 – 第一个为 VB 8.0 开发的技术预览版发布
2007年11月19日 – LINQ作为 .NET Framework 3.5 的一部分正式发布
LINQ是什么
◆LINQ( Language Integrated Query )即语言集成查询
◆LINQ 是一组语言特性和API,使得你可以使用统一的方式编写各种查询。查询的对象包括XML、对象集合、SQL Server 数据库等等。
LINQ基础——主要包含以下六个部分:
◆LINQ to Objects 主要负责对象的查询
◆LINQ to XML 主要负责 XML 的查询
◆LINQ to ADO.NET 主要负责数据库的查询
◆LINQ to SQL
◆LINQ to DataSet
◆LINQ to Entities
LINQ 基础组成:
对象 和 LINQ to SQL 查询.NET Language Integrated Query包括:
◆LNIQ to Objects
◆LINQ to ADO.NET
◆LINQ to XML
LINQ 初体验
在没有LINQ以前,我们这样查询:
//从 numbers 数组中提取偶数并降序排列
int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };
List<int> even = new List<int>();
foreach (int number in numbers)
{
if (number % 2 == 0)
{
even.Add(number);
}
}
even.Sort();
even.Reverse();
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
有了LINQ! 我们这样查询:
//从 numbers 数组中提取偶数并降序排列
int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };
var even = numbers
.Where(p => p % 2 == 0)
.Select(p => p)
.OrderByDescending(p => p);
//代码分析:
int[] numbers = new int[]
{ 6, 4, 3, 2, 9, 1, 7, 8, 5 };
var even = numbers
.Where( p => p % 2 == 0 )
.Select( p => p )
.OrderByDescending( p => p );
//var推断类型
//.Select扩展方法
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
【编辑推荐】