From 句 (Visual Basic)From Clause (Visual Basic)

1 つまたは複数の範囲変数とクエリのコレクションを指定します。Specifies one or more range variables and a collection to query.


From element [ As type ] In collection [ _ ]  
  [, element2 [ As type2 ] In collection2 [, ... ] ]  


用語Term 定義Definition
element 必須。Required. A範囲変数コレクションの要素を反復処理するために使用します。A range variable used to iterate through the elements of the collection. 各メンバーを参照する範囲変数が使用される、collectionを反復処理、クエリと、collectionします。A range variable is used to refer to each member of the collection as the query iterates through the collection. 列挙可能な型である必要があります。Must be an enumerable type.
type 省略可能です。Optional. element の型。The type of element. ない場合はtypeを指定の種類elementから推論されますcollectionします。If no type is specified, the type of element is inferred from collection.
collection 必須。Required. クエリを実行するコレクションを参照します。Refers to the collection to be queried. 列挙可能な型である必要があります。Must be an enumerable type.


From句をクエリし、ソース コレクションから要素を指すために使用されている変数のソース データを識別するために使用します。The From clause is used to identify the source data for a query and the variables that are used to refer to an element from the source collection. これらの変数と呼ばれます範囲変数します。These variables are called range variables. From句が必要な場合を除き、クエリ、Aggregate句を返しますが、結果の集計をのみこと、クエリを識別するために使用します。The From clause is required for a query, except when the Aggregate clause is used to identify a query that returns only aggregated results. 詳細については、次を参照してください。 Aggregate 句します。For more information, see Aggregate Clause.

複数を指定するFrom参加する複数のコレクションを識別するために、クエリ内の句。You can specify multiple From clauses in a query to identify multiple collections to be joined. 複数のコレクションを指定すると、これらは別々 に反復処理、または関連している場合に参加することができます。When multiple collections are specified, they are iterated over independently, or you can join them if they are related. 使用してコレクションに暗黙的に参加することができます、Select句、またはを使用して明示的に、JoinまたはGroup Join句。You can join collections implicitly by using the Select clause, or explicitly by using the Join or Group Join clauses. 代わりに、指定できます複数の範囲変数およびコレクション 1 つのFrom句は、各関連の範囲変数と、他のユーザーから、コンマで区切られたコレクションを使用します。As an alternative, you can specify multiple range variables and collections in a single From clause, with each related range variable and collection separated from the others by a comma. 次のコード例は、両方の構文のオプションを示しています、From句。The following code example shows both syntax options for the From clause.

' 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ループします。The From clause defines the scope of a query, which is similar to the scope of a For loop. そのため、各elementのクエリ スコープの範囲変数は、一意の名前をいる必要があります。Therefore, each element range variable in the scope of a query must have a unique name. 複数を指定するため、 From 、クエリは、後続の句From句で範囲変数を参照できます、From句、または、以前の範囲変数に参照できますFrom句。Because you can specify multiple From clauses for a query, subsequent From clauses can refer to range variables in the From clause, or they can refer to range variables in a previous From clause. たとえば、次の例では、表示、入れ子になったFrom2 つ目の句では、コレクションは、最初の句の範囲変数のプロパティをに基づいて句。For example, the following example shows a nested From clause where the collection in the second clause is based on a property of the range variable in the first clause.

Dim allOrders = From cust In GetCustomerList()
                From ord In cust.Orders
                Select ord

From句の後に、クエリを絞り込むの追加のクエリ句の任意の組み合わせをできます。Each From clause can be followed by any combination of additional query clauses to refine the query. 次の方法でクエリを絞り込むことができます。You can refine the query in the following ways:

  • 使用して暗黙的に複数のコレクションを組み合わせる、FromSelect句、またはを使用して明示的に、JoinまたはGroup Join句。Combine multiple collections implicitly by using the From and Select clauses, or explicitly by using the Join or Group Join clauses.

  • 使用して、Where句をクエリの結果をフィルター処理します。Use the Where clause to filter the query result.

  • 使用して、結果を並べ替える、Order By句。Sort the result by using the Order By clause.

  • 使用して同様の結果をグループ化、Group By句。Group similar results together by using the Group By clause.

  • 使用して、Aggregate句全体のクエリの結果を評価する集計関数を識別します。Use the Aggregate clause to identify aggregate functions to evaluate for the whole query result.

  • 使用して、Let句を反復変数の値は、コレクションではなく式によって決定されます。Use the Let clause to introduce an iteration variable whose value is determined by an expression instead of a collection.

  • 使用して、Distinct重複するクエリの結果を無視する句。Use the Distinct clause to ignore duplicate query results.

  • 使用して返される結果の部分を特定、 SkipTakeSkip While、およびTake While句。Identify parts of the result to return by using the Skip, Take, Skip While, and Take While clauses.


次のクエリ式は、From範囲変数を宣言する句custCustomerオブジェクト、customersコレクション。The following query expression uses a From clause to declare a range variable cust for each Customer object in the customers collection. Where句では、範囲変数を使用して、指定されたリージョンからお客様に、出力を制限します。The Where clause uses the range variable to restrict the output to customers from the specified region. For Eachループは、クエリ結果の各顧客の会社名を表示します。The For Each loop displays the company name for each customer in the query result.

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
End Sub

関連項目See also