程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> LINQ 查詢語法

LINQ 查詢語法

編輯:關於C#
 

LINQ主要的功能就是實現查詢,LINQ查詢存在以下兩種形式。
⑴ Method Synta (查詢方法方式):主要利用 System.Linq.Enumerable 類中定義的擴展方法和Lambda 表達式方式進行查詢。它提供了一種增強了程序的可讀性的語法,易讀易寫,寫時不容易出錯。Visual Studio 2010為查詢語法提供了完全的智能提示和編譯時檢查。
例如:
int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 }; //獲取數據源(此處由一個數組充當);
var numQuery = numbers//numQuery是查詢變量,通過右邊的查詢表達式對查詢變量賦值;
.where(p => p % 2 == 0) //查詢numbers中能被2整除的元素
.orderby descending(p => p) //查詢結果按照降序排列
.select(p => p); //列出所有符合條件的元素
⑵ Query Syntax(查詢語句方式):一種更接近 SQL 語法的查詢方式,可讀性更好。示例代碼如下:
int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 }; //獲取數據源(此處由一個數組充當);
var numQuery = from number in numbers //右邊的查詢表達式對numQuery查詢變量賦值
where number % 2 == 0 //查詢numbers中能被2整除的元素
orderby number descending //查詢結果按照降序排列
select number; //列出所有符合條件的元素
查詢方法和查詢語法兩者的執行效果完全一樣,上面示例中,數據源是一個數組,隱式支持泛型IEnumerable(T)接口,因此可用LINQ對該數組進行查詢。
“查詢表達式”是用查詢語法表示的查詢,由一組用類似於 SQL 或 XQuery 的聲明性語法編寫的子句組成。每個子句又包含一個或多個 C# 表達式,而這些表達式本身又可能是查詢表達式或包含查詢的表達式。查詢表達式必須以 from子句開頭,並且必須以 select 或 group 子句結尾。在第一個 from 子句和最後一個 select 或 group 子句之間,查詢表達式可以包含一個或多個下列可選子句: where、 orderby、 join、 let 和附加的 from 子句。還可以使用 into 關鍵字使 join 或 group 子句的結果充當同一查詢表達式中附加查詢子句的源。查詢子句簡介如下:
from 子句 指定數據源和范圍變量(類似於迭代變量)。
where 子句 根據一個或多個由邏輯“與”和邏輯“或”運算符(&& 或 ||)分隔的布爾表達式篩選源元素。
select 子句 指定當執行查詢時返回的序列中的元素將具有的類型和形式。
group 子句 按照指定的鍵值對查詢結果進行分組。
into子句 提供一個標識符,以便將 group、join 或 select 子句的結果存儲到新的標識符中。
orderby子句 基於元素類型的默認比較器按升序或降序對查詢結果進行排序。
join 子句 基於兩個指定匹配條件之間的相等比較來聯接兩個數據源。
let 子句 引入一個用於存儲查詢表達式中的子表達式結果的范圍變量。
LINQ 查詢操作都由以下三個不同的操作組成:獲取數據源、創建查詢和執行查詢。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved