하나 이상의 범위 변수와 쿼리할 컬렉션을 지정합니다.
문법
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절을 사용하거나 orGroup Join절을From사용하여Join명시적으로 여러 컬렉션을 암시적으로 결합합니다.절을
Where사용하여 쿼리 결과를 필터링합니다.절을 사용하여 결과를 정렬합니다
Order By.절을 사용하여 유사한 결과를 그룹화합니다
Group By.절을
Aggregate사용하여 집계 함수를 식별하여 전체 쿼리 결과를 평가합니다.이 절을
Let사용하여 컬렉션 대신 식에 의해 값이 결정되는 반복 변수를 도입합니다.절을
Distinct사용하여 중복 쿼리 결과를 무시합니다.,
Take및Skip WhileTake While절을 사용하여Skip반환할 결과의 일부를 식별합니다.
예시
다음 쿼리 식은 절을 From 사용하여 컬렉션의 각 Customer 개체에 대한 범위 변수 cust 를 customers 선언합니다. 이 절은 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