다음을 통해 공유


From 절(Visual Basic)

하나 이상의 범위 변수와 쿼리할 컬렉션을 지정합니다.

문법

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

부분

기간 정의
element 필수 사항입니다. 컬렉션의 요소를 반복하는 데 사용되는 범위 변수 입니다. 범위 변수는 쿼리가 을 반복collection할 때 각 멤버 collection 를 참조하는 데 사용됩니다. 열거 가능한 형식이어야 합니다.
type 선택 사항입니다. element의 형식입니다. 지정하지 type 않으면 형식 element 이 .에서 collection유추됩니다.
collection 필수 사항입니다. 쿼리할 컬렉션을 참조합니다. 열거 가능한 형식이어야 합니다.

비고

From 절은 쿼리의 원본 데이터와 원본 컬렉션의 요소를 참조하는 데 사용되는 변수를 식별하는 데 사용됩니다. 이러한 변수를 범위 변수라고 합니다. From 절은 집계된 결과만 반환하는 쿼리를 식별하는 데 사용되는 경우 Aggregate 를 제외하고 쿼리에 필요합니다. 자세한 내용은 Aggregate 절을 참조하세요.

쿼리에서 여러 From 절을 지정하여 조인할 여러 컬렉션을 식별할 수 있습니다. 여러 컬렉션을 지정하면 컬렉션이 독립적으로 반복되거나 관련된 경우 조인할 수 있습니다. 절을 사용하거나 명시적으로 또는 Group Join 절을 Select 사용하여 컬렉션을 암시적으로 조인할 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 절 뒤에 추가 쿼리 절을 조합하여 쿼리를 구체화할 수 있습니다. 다음과 같은 방법으로 쿼리를 구체화할 수 있습니다.

  • and Select 절을 사용하거나 or Group Join 절을 From 사용하여 Join 명시적으로 여러 컬렉션을 암시적으로 결합합니다.

  • 절을 Where 사용하여 쿼리 결과를 필터링합니다.

  • 절을 사용하여 결과를 정렬합니다 Order By .

  • 절을 사용하여 유사한 결과를 그룹화합니다 Group By .

  • 절을 Aggregate 사용하여 집계 함수를 식별하여 전체 쿼리 결과를 평가합니다.

  • 이 절을 Let 사용하여 컬렉션 대신 식에 의해 값이 결정되는 반복 변수를 도입합니다.

  • 절을 Distinct 사용하여 중복 쿼리 결과를 무시합니다.

  • , TakeSkip WhileTake While 절을 사용하여 Skip반환할 결과의 일부를 식별합니다.

예시

다음 쿼리 식은 절을 From 사용하여 컬렉션의 각 Customer 개체에 대한 범위 변수 custcustomers 선언합니다. 이 절은 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

참고하십시오