From 子句 (Visual Basic)
指定要查詢的一或多個範圍變數與集合。
語法
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
子句隱含聯結集合,或是使用 Join
或 Group 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
子句,其中第二個子句中的集合是以第一個子句中範圍變數的屬性為基礎。
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
每個 From
子句後面都可以接著其他查詢子句的任何組合,以精簡查詢。 您可以透過下列方式精簡查詢:
使用
From
與Select
子句隱含合併多個集合,或使用Join
或Group Join
子句明確合併。使用
Where
子句篩選查詢結果。使用
Order By
子句排序結果。使用
Group By
子句將類似的結果分組在一起。使用
Aggregate
子句來識別彙總函式,以評估整個查詢結果。使用
Let
子句引進反覆運算變數,其值是由運算式所決定,而不是集合。使用
Distinct
子句忽略重複的查詢結果。使用
Skip
、Take
、Skip 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