LINQ 查询表达式(C# 编程指南)
LINQ 查詢表達(dá)式(C# 編程指南)
語言集成查詢 (LINQ) 是一組技術(shù)的名稱,這些技術(shù)建立在將查詢功能直接集成到 C# 語言(以及 Visual Basic 和可能的任何其他 .NET 語言)的基礎(chǔ)上。? 借助于 LINQ,查詢現(xiàn)在已是高級(jí)語言構(gòu)造,就如同類、方法、事件等等。?
對(duì)于編寫查詢的開發(fā)人員來說,LINQ 最明顯的“語言集成”部分是查詢表達(dá)式。? 查詢表達(dá)式是使用 C# 3.0 中引入的聲明性查詢語法編寫的。? 通過使用查詢語法,您甚至可以使用最少的代碼對(duì)數(shù)據(jù)源執(zhí)行復(fù)雜的篩選、排序和分組操作。? 您使用相同的基本查詢表達(dá)式模式來查詢和轉(zhuǎn)換 SQL 數(shù)據(jù)庫、ADO.NET 數(shù)據(jù)集、XML 文檔和流以及 .NET 集合中的數(shù)據(jù)。?
下面的示例演示了完整的查詢操作。? 完整操作包括創(chuàng)建數(shù)據(jù)源、定義查詢表達(dá)式,以及在 foreach 語句中執(zhí)行查詢。?
C# 復(fù)制 class LINQQueryExpressions {static void Main(){// Specify the data source.int[] scores = new int[] { 97, 92, 81, 60 }; // Define the query expression. IEnumerable<int> scoreQuery = from score in scores where score > 80 select score; // Execute the query. foreach (int i in scoreQuery) { Console.Write(i + " "); } } } // Output: 97 92 81有關(guān) C# 中的 LINQ 基礎(chǔ)知識(shí)的更多信息,請(qǐng)參見 Getting Started with LINQ in C#。????
-
查詢表達(dá)式可用于查詢和轉(zhuǎn)換來自任意支持 LINQ 的數(shù)據(jù)源中的數(shù)據(jù)。? 例如,單個(gè)查詢可以從 SQL 數(shù)據(jù)庫檢索數(shù)據(jù),并生成 XML 流作為輸出。?
-
查詢表達(dá)式容易掌握,因?yàn)樗鼈兪褂迷S多常見的 C# 語言構(gòu)造。? 有關(guān)更多信息,請(qǐng)參見 Getting Started with LINQ in C#。?
-
查詢表達(dá)式中的變量都是強(qiáng)類型的,但許多情況下您不需要顯式提供類型,因?yàn)榫幾g器可以推斷類型。? 有關(guān)更多信息,請(qǐng)參見Type Relationships in LINQ Query Operations (C#)。?
-
在您循環(huán)訪問 foreach 語句中的查詢變量之前,不會(huì)執(zhí)行查詢。? 有關(guān)更多信息,請(qǐng)參見 Introduction to LINQ Queries (C#)。?
-
在編譯時(shí),根據(jù) C# 規(guī)范中設(shè)置的規(guī)則將查詢表達(dá)式轉(zhuǎn)換為“標(biāo)準(zhǔn)查詢運(yùn)算符”方法調(diào)用。? 任何可以使用查詢語法表示的查詢也可以使用方法語法表示。? 但是,在大多數(shù)情況下,查詢語法更易讀和簡(jiǎn)潔。? 有關(guān)更多信息,請(qǐng)參見 C# 語言規(guī)范和Standard Query Operators Overview。?
-
作為編寫 LINQ 查詢的一項(xiàng)規(guī)則,建議盡量使用查詢語法,只在必需的情況下才使用方法語法。? 這兩種不同形式在語義或性能上沒有區(qū)別。? 查詢表達(dá)式通常比用方法語法編寫的等效表達(dá)式更易讀。?
-
一些查詢操作,如 Count<TSource> 或 Max,沒有等效的查詢表達(dá)式子句,因此必須表示為方法調(diào)用。? 方法語法可以通過多種方式與查詢語法組合。? 有關(guān)更多信息,請(qǐng)參見Query Syntax and Method Syntax in LINQ (C#)。?
-
查詢表達(dá)式可以編譯為表達(dá)式樹或委托,具體取決于查詢所應(yīng)用到的類型。? IEnumerable<T> 查詢編譯為委托。? IQueryable 和 IQueryable<T> 查詢編譯為表達(dá)式樹。? 有關(guān)更多信息,請(qǐng)參見表達(dá)式樹(C# 和 Visual Basic)。
posted on 2016-11-12 10:03 時(shí)空觀察者9號(hào) 閱讀(...) 評(píng)論(...) 編輯 收藏
總結(jié)
以上是生活随笔為你收集整理的LINQ 查询表达式(C# 编程指南)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hashset hastable dic
- 下一篇: c# char unsigned_dll