指定要查詢的一或多個範圍變數和集合。
語法
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
組件
| 術語 | 定義 |
|---|---|
element |
必須的。 用來逐一查看集合元素 的範圍變數 。 範圍變數用來參考 的每個成員 collection ,因為查詢會逐 collection一查看 。 必須是可列舉的類型。 |
type |
選擇性。
element 的類型。
type如果未指定 ,則會從 collection推斷 的element型別。 |
collection |
必須的。 參考要查詢的集合。 必須是可列舉的類型。 |
備註
From子句可用來識別查詢的源數據,以及用來參考來源集合中元素的變數。 這些變數稱為 範圍變數。 查詢 From 需要 子句,但當 子句用來識別只傳回匯總結果的查詢時 Aggregate 除外。 如需詳細資訊,請參閱 Aggregate 子句。
您可以在查詢中指定多個 From 子句,以識別要聯結的多個集合。 指定多個集合時,它們會獨立逐一查看,或者,如果它們相關,您可以聯結它們。 您可以使用 子句隱含Select聯結集合,或使用 或 Group Join 子句明確聯Join結集合。 或者,您可以在單 From 一子句中指定多個範圍變數和集合,而每個相關的範圍變數和集合則以逗號分隔於其他範圍變數和集合。 下列程式代碼範例顯示 子句的這兩個 From 語法選項。
' Multiple From clauses in a query.
Dim result = From var1 In collection1, var2 In collection2
' Equivalent syntax with a single From clause.
Dim result2 = From var1 In collection1
From var2 In collection2
子 From 句會定義查詢的範圍,類似於迴圈的範圍 For 。 因此, element 查詢範圍中的每個範圍變數都必須有唯一的名稱。 因為您可以為查詢指定多個 From 子句,所以後續 From 子句可以參考 子句中的 From 範圍變數,也可以參考前 From 一個子句中的範圍變數。 例如,下列範例顯示巢狀 From 子句,其中第二個子句中的集合是以第一個子句中 range 變數的 屬性為基礎。
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
每個 From 子句都可以接著其他查詢子句的任何組合來精簡查詢。 您可以透過下列方式精簡查詢:
使用
From和Select子句隱含結合多個集合,或使用 或Group Join子句明確Join結合。Where使用 子句來篩選查詢結果。使用
Order By子句排序結果。使用
Group By子句將類似的結果分組在一起。Aggregate使用 子句來識別匯總函數,以評估整個查詢結果。Let使用 子句來引進反覆運算變數,其值是由表達式決定,而不是集合。Distinct使用 子句忽略重複的查詢結果。使用
Skip、TakeSkip While和Take While子句來識別要傳回之結果的部分。
範例
下列查詢表達式會使用 From 子句來宣告集合中customers每個Customer物件的範圍變數cust。 子 Where 句會使用範圍變數,將輸出限制為來自指定區域的客戶。 循環會顯示 For Each 查詢結果中每個客戶的公司名稱。
Sub DisplayCustomersForRegion(ByVal customers As List(Of Customer),
ByVal region As String)
Dim customersForRegion = From cust In customers
Where cust.Region = region
For Each cust In customersForRegion
Console.WriteLine(cust.CompanyName)
Next
End Sub