Linq Select子句全面總結(jié)
Linq有很多值得學(xué)習(xí)的地方,這里我們主要介紹Linq Select子句,包括介紹Linq Select子句指定所返回元素的形式和內(nèi)容等方面。
選擇數(shù)據(jù)(SELECT)
Linq Select子句指定所返回元素的形式和內(nèi)容。若要檢索包含整個數(shù)據(jù)源對象的集合,請選擇范圍變量本身。若要從數(shù)據(jù)源中選擇多個字段,您可以使用兩種方法:
1、在Linq Select子句中,指定要包含在結(jié)果中的字段。編譯器將定義一個匿名類型,該類型將這些字段作為其屬性。如:
- Dim londonCusts4 = From cust In customers _
- Where cust.City = "London" _
- Order By cust.Name Ascending _
- Select Name = cust.Name, Phone = cust.Phone
2、定義含有您要包括在結(jié)果中的特定字段的命名類型,并在Linq Select子句中創(chuàng)建和初始化該類型的實(shí)例。僅當(dāng)您必須在返回各個結(jié)果的集合以外使用這些結(jié)果,或者必須將這些結(jié)果作為參數(shù)傳入方法調(diào)用時,才使用此選項。
- Dim londonCusts5 = From cust In customers _ Select New NamePhone With
{
.Name = cust.Name, _.Phone = cust.Phone
}
如果未指定Linq Select子句,查詢將根據(jù)為當(dāng)前范圍變量的所有成員返回一個類型。
Linq Select子句可以引用當(dāng)前范圍中的任何變量,包括在 From 子句中標(biāo)識的范圍變量,由 Aggregate、Let、Group By 或 Group Join 子句通過別名創(chuàng)建的任何新變量或查詢表達(dá)式中之前的Linq Select子句創(chuàng)建的變量。Linq Select子句還可以包含靜態(tài)值。
Linq Select子句可為后續(xù)的其他子句子句引入一組新的范圍變量,而之前的范圍變量不再位于范圍中,查詢表達(dá)式中的***一個Linq Select子句確定查詢的返回值。例如:
- Dim customerList = From cust In customers, ord In cust.Orders _
- Select Name = cust.CompanyName
- //引入新范圍變量
- Total = ord.Total, ord.OrderID _
- //引入新范圍變量
- Where Total > 500 _
- //后續(xù)子句使用新的范圍比例
- Select Name, OrderID
【編輯推薦】