LINQ 查询表达式(C# 编程指南)
LINQ 查詢表達式(C# 編程指南)
語言集成查詢 (LINQ) 是一組技術的名稱,這些技術建立在將查詢功能直接集成到 C# 語言(以及 Visual Basic 和可能的任何其他 .NET 語言)的基礎上。? 借助于 LINQ,查詢現在已是高級語言構造,就如同類、方法、事件等等。?
對于編寫查詢的開發人員來說,LINQ 最明顯的“語言集成”部分是查詢表達式。? 查詢表達式是使用 C# 3.0 中引入的聲明性查詢語法編寫的。? 通過使用查詢語法,您甚至可以使用最少的代碼對數據源執行復雜的篩選、排序和分組操作。? 您使用相同的基本查詢表達式模式來查詢和轉換 SQL 數據庫、ADO.NET 數據集、XML 文檔和流以及 .NET 集合中的數據。?
下面的示例演示了完整的查詢操作。? 完整操作包括創建數據源、定義查詢表達式,以及在 foreach 語句中執行查詢。?
C# 復制 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有關 C# 中的 LINQ 基礎知識的更多信息,請參見 Getting Started with LINQ in C#。????
-
查詢表達式可用于查詢和轉換來自任意支持 LINQ 的數據源中的數據。? 例如,單個查詢可以從 SQL 數據庫檢索數據,并生成 XML 流作為輸出。?
-
查詢表達式容易掌握,因為它們使用許多常見的 C# 語言構造。? 有關更多信息,請參見 Getting Started with LINQ in C#。?
-
查詢表達式中的變量都是強類型的,但許多情況下您不需要顯式提供類型,因為編譯器可以推斷類型。? 有關更多信息,請參見Type Relationships in LINQ Query Operations (C#)。?
-
在您循環訪問 foreach 語句中的查詢變量之前,不會執行查詢。? 有關更多信息,請參見 Introduction to LINQ Queries (C#)。?
-
在編譯時,根據 C# 規范中設置的規則將查詢表達式轉換為“標準查詢運算符”方法調用。? 任何可以使用查詢語法表示的查詢也可以使用方法語法表示。? 但是,在大多數情況下,查詢語法更易讀和簡潔。? 有關更多信息,請參見 C# 語言規范和Standard Query Operators Overview。?
-
作為編寫 LINQ 查詢的一項規則,建議盡量使用查詢語法,只在必需的情況下才使用方法語法。? 這兩種不同形式在語義或性能上沒有區別。? 查詢表達式通常比用方法語法編寫的等效表達式更易讀。?
-
一些查詢操作,如 Count<TSource> 或 Max,沒有等效的查詢表達式子句,因此必須表示為方法調用。? 方法語法可以通過多種方式與查詢語法組合。? 有關更多信息,請參見Query Syntax and Method Syntax in LINQ (C#)。?
-
查詢表達式可以編譯為表達式樹或委托,具體取決于查詢所應用到的類型。? IEnumerable<T> 查詢編譯為委托。? IQueryable 和 IQueryable<T> 查詢編譯為表達式樹。? 有關更多信息,請參見表達式樹(C# 和 Visual Basic)。
posted on 2016-11-12 10:03 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結
以上是生活随笔為你收集整理的LINQ 查询表达式(C# 编程指南)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hashset hastable dic
- 下一篇: C#一元运算重载的深入理解