C 之 LINQ的查詢語法

2021-10-06 15:40:09 字數 3307 閱讀 5461

寫linq時有兩種形式的語法:

(1)查詢語法(query syntax)查詢語法是宣告形式的,使用查詢表示式形式來書寫。

(2)方法語法(method syntax)方法語法是命令形式的,它使用的是標準的方法呼叫。方法是一組叫做標準查詢運算子的方法。

微軟推薦使用查詢語法,因為它更易讀,能更清晰的表明查詢意圖,因此也不容易出錯。然而,有一些運算子必須使用方法語法來書寫。

所以我們通常在乙個查詢中可以使用兩種方法的組合。查詢表示式使用的查詢語法會被c#編譯器轉換為方法呼叫的形式、這兩種形式在執行時效能上沒有區別

linq查詢可以返回兩種型別的結果:

(1)可列舉的一組資料,它列出了滿足查詢引數的項列表;

(2)標量,它是滿足查詢條件的結果的某種摘要形式。

static

void

main

(string

args)

;stopwatch sw1 =

newstopwatch()

; sw1.

start()

;//在numberarr表中查詢大於等於60的元素

from子句指定了要作為資料來源使用的資料集合。語法格式如下所示:

from 資料型別 迭代變數 in 要查詢的資料來源

對from子句的說明如下:

① 迭代變數有序表示資料來源的每乙個元素;

② 資料型別是集合中元素的型別,資料型別是可選的,因為編譯器會從集合來自動推斷出迭代變數的型別;

③ 要查詢的集合必須是可以列舉的。

where子句根據之後的運算來去除不符合指定條件的項。如下所示是where子句的語法:

where 布林表示式

where子句將布林表示式,即謂詞,應用於由迭代變數引用的每個源元素,並返回滿足指定條件的元素。

使用where子句需注意以下幾點:

(1)where子句是一種篩選機制,它不能是查詢表示式中的第乙個或最後乙個子句;

(2)如果where子句中設定的布林表示式對當前資料來源的元素無效,則會發生編譯錯誤;

(3)編譯時,where關鍵字會被轉換為where標準查詢運算子方法的呼叫。

select子句指定所選擇的物件那部分應該被選擇。它可以指定下面的任意一項:

(1)整個資料項

(2)資料項的乙個字段

(3)資料項中的幾個字段組成的新物件(或類似其他值)

select子句的結果基於前面所有子句的計算結果以及select子

句本身的所有表示式。

查詢表示式必須以 select子句或group子句結束。

group子句是可選的,用來指定選定的項如何被分組。使用

group子句的注意事項如下:

(1)如果項包括在查詢的結果中,就可以根據某個欄位的值進行分組。作為分組依據的項叫做鍵;

(2)group子句不從原始的資料來源中返回可列舉項的列舉型別,而是返回已經形成的可以列舉項的分組的可列舉型別;

(3)分組本身是可列舉型別,它們可以列舉實際的項。

使用示例:

orderby子句接受乙個表示式並根據表示式依次返回結果項orderby子句的語法如下所示:

orderby 表示式 [ ascending |descending]]

不寫字尾預設是公升序排序方式,

可以有任意多個orderby子句,但是必須使用逗號分割。

var persons =

new,

new,

new}

;var shengxu =

from pos in

persons

orderby pos.

ageascending

select pos;

foreach

(var i in shengxu)

var jiangxu =

from pos in

persons

orderby pos.

agedescending

select pos;

foreach

(var i in jiangxu)

上面這個例子使用age這個字段,也可以使用name這個欄位會根據英文本母排序,若name有中文也是可以排序的,可以自行嘗試下.

二 MVC之LINQ查詢語法

linq language integrated query 語言整合查詢是一組用於c 和visual basic語言的擴充套件。它允許編寫c 或者visual basic 以操作記憶體資料的方式,查詢資料庫。從技術角度而言,linq定義了大約40個查詢操作符,如select from in whe...

二 MVC之LINQ查詢語法

linq language integrated query 語言整合查詢是一組用於c 和visual basic語言的擴充套件。它允許編寫c 或者visual basic 以操作記憶體資料的方式,查詢資料庫。從技術角度而言,linq定義了大約40個查詢操作符,如select from in whe...

LINQ 之 基本 LINQ 查詢操作

在 linq 查詢中,第一步是指定資料來源。像在大多數程式語言中一樣,必須先宣告變數,才能使用它。在 linq 查詢中,最先使用from子句的目的是引入資料來源和範圍變數。queryallcustomers 是 ienumerable型別 資料來源 customers 和範圍變數 cust var ...