From 절(Visual Basic)
하나 이상의 범위 변수와 쿼리할 컬렉션을 지정합니다.
구문
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
부분
용어 | 정의 |
---|---|
element |
필수입니다. 컬렉션의 요소를 반복하는 데 사용되는 범위 변수입니다. 쿼리가 collection 을 반복할 때 범위 변수는 collection 의 각 멤버를 참조하는 데 사용됩니다. 열거 가능한 형식이어야 합니다. |
type |
선택 사항. element 의 형식입니다. type 이 지정되지 않으면 element 형식이 collection 에서 유추됩니다. |
collection |
필수입니다. 쿼리할 컬렉션을 나타냅니다. 열거 가능한 형식이어야 합니다. |
설명
From
절은 쿼리의 원본 데이터와 원본 컬렉션의 요소를 참조하는 데 사용되는 변수를 식별하는 데 사용됩니다. 이러한 변수를 범위 변수라고 합니다. 집계된 결과만 반환하는 쿼리를 식별하는 데 Aggregate
절이 사용되는 경우를 제외하고 쿼리에는 From
절이 필요합니다. 자세한 내용은 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
참고 항목
.NET