linq標準查詢運算子

2022-01-11 01:52:32 字數 1353 閱讀 1716

適用場景:對查詢出的語句進行排序,比如按時間排序等等。

說明:按指定表示式對集合排序;延遲,:按指定表示式對集合排序;延遲,預設是公升序,加上descending表示降序,對應的擴充套件方法是orderby和orderbydescending

這個例子使用 orderby 按雇用日期對雇員進行排序:

var q = from e in db.employees

orderby e.hiredate

select e;

說明:預設為公升序

注意:where和order by的順序並不重要。而在t-sql中,where和order by有嚴格的位置限制。

var q =

from o in db.orders

where o.shipcity == "london"

orderby o.freight

select o;

語句描述:使用where和orderby按運費進行排序。

var q = 

from p in db.products

orderby p.unitprice descending

select p;

語句描述:使用復合的 orderby 對客戶進行排序,進行排序:

var q =

from c in db.customers

orderby c.city, c.contactname

select c;

說明:按多個表示式進行排序,例如先按city排序,當city相同時,按contactname排序。這一句用lambda表示式像這樣寫:

var q = 

.orderby(c => c.city)

.thenby(c => c.contactname).tolist();

在t-sql中沒有thenby語句,其依然翻譯為orderby,所以也可以用下面語句來表達:

var q = 

db.customers

.orderby(c => c.contactname)

.orderby(c => c.city).tolist();

所要注意的是,多個orderby操作時,級連方式是按逆序。對於降序的,用相應的降序操作符替換即可。

var q = 

db.customers

.orderbydescending(c => c.city)

.thenbydescending(c => c.contactname).tolist();

LINQ標準查詢運算子執行方式 非流式處理

linq的延遲執行方式分兩種,一種是流式,另一種是非流式。非流式處理運算子必須先讀取所有源資料,然後才能生成結果元素。非流式處理的運算子包括 groupby orderby orderbydescending reverse thenby thenbydescending groupby listp...

MVC 標準查詢運算子

標準查詢運算子 定義在system.linq.enumerable類中的50多個為ienumerable準備的擴充套件方法,這些方法用來 對它操作的集合進行查詢篩選。篩選集合where 需要提供乙個帶bool返回值的 篩選器 從而表明集合中某個元素是否應該被返回。查詢投射,返回新物件集合ienume...

LINQ之運算子轉換

使用 asenumerable可返回型別化為泛型 ienumerable 的引數。在此示例中,linq to sql 使用預設泛型 query 會嘗試將查詢轉換為 sql 並在伺服器上執行。但 where 子句引用使用者定義的客戶端方法 isvalidproduct 此方法無法轉換為 sql。解決方...