From 절(Visual Basic)From Clause (Visual Basic)

하나 이상의 범위 변수와 쿼리할 컬렉션을 지정 합니다.Specifies one or more range variables and a collection to query.

구문Syntax

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

요소Parts

용어Term 정의Definition
element 필수입니다.Required. 컬렉션의 요소를 반복 하는 데 사용 되는 범위 변수 입니다.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.

주의Remarks

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. Aggregate 절을 사용 하 여 집계 된 결과만 반환 하는 쿼리를 식별 하는 경우를 제외 하 고는 쿼리에는 From 절이 필요 합니다.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. 또는 각각의 관련 범위 변수와 컬렉션을 쉼표로 구분 하 여 단일 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. 예를 들어 다음 예에서는 두 번째 절의 컬렉션이 첫 번째 절의 범위 변수 속성을 기반으로 하는 중첩 된 From 절을 보여 줍니다.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.

  • Skip, Take, Skip WhileTake While 절을 사용 하 여 반환할 결과의 일부를 식별 합니다.Identify parts of the result to return by using the Skip, Take, Skip While, and Take While clauses.

예제Example

다음 쿼리 식은 From 절을 사용 하 여 customers 컬렉션의 각 Customer 개체에 대해 범위 변수 cust를 선언 합니다.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
    Console.WriteLine(cust.CompanyName)
  Next
End Sub

참고 항목See also