LINQ基礎(chǔ)全面概述
在向大家詳細(xì)介紹LINQ基礎(chǔ)之前,首先讓大家了解下LINQ 的歷史和LINQ是什么,然后全面介紹LINQ基礎(chǔ)。
LINQ 的歷史
最初由 Anders Hejlsberg 構(gòu)思,最初的研究計(jì)劃稱為 Cω
2005年9月 – 第一個(gè)為 C# 2.0 開(kāi)發(fā)的技術(shù)預(yù)覽版在當(dāng)年的 PDC(微軟開(kāi)發(fā)者大會(huì))上發(fā)布
2005年11月 – 更新至社區(qū)預(yù)覽版(C# 2.0)
2006年1月 – 第一個(gè)為 VB 8.0 開(kāi)發(fā)的技術(shù)預(yù)覽版發(fā)布
2007年11月19日 – LINQ作為 .NET Framework 3.5 的一部分正式發(fā)布
LINQ是什么
◆LINQ( Language Integrated Query )即語(yǔ)言集成查詢
◆LINQ 是一組語(yǔ)言特性和API,使得你可以使用統(tǒng)一的方式編寫(xiě)各種查詢。查詢的對(duì)象包括XML、對(duì)象集合、SQL Server 數(shù)據(jù)庫(kù)等等。
LINQ基礎(chǔ)——主要包含以下六個(gè)部分:
◆LINQ to Objects 主要負(fù)責(zé)對(duì)象的查詢
◆LINQ to XML 主要負(fù)責(zé) XML 的查詢
◆LINQ to ADO.NET 主要負(fù)責(zé)數(shù)據(jù)庫(kù)的查詢
◆LINQ to SQL
◆LINQ to DataSet
◆LINQ to Entities
LINQ 基礎(chǔ)組成:
對(duì)象 和 LINQ to SQL 查詢.NET Language Integrated Query包括:
◆LNIQ to Objects
◆LINQ to ADO.NET
◆LINQ to XML
LINQ 初體驗(yàn)
在沒(méi)有LINQ以前,我們這樣查詢:
- //從 numbers 數(shù)組中提取偶數(shù)并降序排列
- 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();
有了LINQ! 我們這樣查詢:
- //從 numbers 數(shù)組中提取偶數(shù)并降序排列
- 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擴(kuò)展方法
【編輯推薦】