LINQ基础全面概述

在向大家详细介绍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以前,我们这样查询:

 
 
 
  1. //从 numbers 数组中提取偶数并降序排列  
  2. int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };  
  3. List<int> even = new List<int>();  
  4. foreach (int number in numbers)  
  5. {  
  6. if (number % 2 == 0)  
  7. {  
  8. even.Add(number);  
  9. }  
  10. }  
  11.  
  12. even.Sort();  
  13. even.Reverse(); 

有了LINQ! 我们这样查询:

 
 
 
  1. //从 numbers 数组中提取偶数并降序排列  
  2. int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };  
  3. var even = numbers 
  4. .Where(p => p % 2 == 0)  
  5. .Select(p => p)  
  6. .OrderByDescending(p => p);  
  7.  
  8. //代码分析:  
  9. int[] numbers = new int[]  
  10.  { 6, 4, 3, 2, 9, 1, 7, 8, 5 };  
  11.  
  12. var even = numbers 
  13. .Where( p => p % 2 == 0 )  
  14. .Select( p => p )  
  15. .OrderByDescending( p => p );  
  16. //var推断类型  
  17. //.Select扩展方法 

【编辑推荐】

  1. Linq匿名类型简单概述
  2. Linq随机读取数据浅析
  3. Linq Lambda表达式全面分析
  4. Linq扩展方法简单分析
  5. 初探Linq局部变量类型
THE END