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. @No__t-0이 지정 되지 않은 경우 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

@No__t-0 절은 쿼리의 소스 데이터와 소스 컬렉션의 요소를 참조 하는 데 사용 되는 변수를 식별 하는 데 사용 됩니다.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. @No__t-1 절을 사용 하 여 집계 된 결과만 반환 하는 쿼리를 식별 하는 경우를 제외 하 고는 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. @No__t-0 절을 사용 하 여 암시적으로 또는 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

@No__t-0 절은 쿼리 범위를 정의 하며,이는 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:

  • @No__t-0 및 Select 절을 사용 하 여 명시적으로 또는 Join 또는 Group Join 절을 사용 하 여 명시적으로 여러 컬렉션을 결합 합니다.Combine multiple collections implicitly by using the From and Select clauses, or explicitly by using the Join or Group Join clauses.

  • @No__t-0 절을 사용 하 여 쿼리 결과를 필터링 합니다.Use the Where clause to filter the query result.

  • @No__t-0 절을 사용 하 여 결과를 정렬 합니다.Sort the result by using the Order By clause.

  • @No__t-0 절을 사용 하 여 비슷한 결과를 그룹화 합니다.Group similar results together by using the Group By clause.

  • @No__t-0 절을 사용 하 여 전체 쿼리 결과에 대해 평가할 집계 함수를 식별 합니다.Use the Aggregate clause to identify aggregate functions to evaluate for the whole query result.

  • @No__t-0 절을 사용 하 여 해당 값이 컬렉션이 아닌 식에 의해 결정 되는 반복 변수를 도입할 수 있습니다.Use the Let clause to introduce an iteration variable whose value is determined by an expression instead of a collection.

  • @No__t-0 절을 사용 하 여 중복 쿼리 결과를 무시 합니다.Use the Distinct clause to ignore duplicate query results.

  • @No__t-0, 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. @No__t-0 절은 범위 변수를 사용 하 여 지정 된 지역의 고객에 대 한 출력을 제한 합니다.The Where clause uses the range variable to restrict the output to customers from the specified region. @No__t-0 루프는 쿼리 결과에서 각 고객의 회사 이름을 표시 합니다.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