쿼리의 결과를 정의합니다.
문법
Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]
부분
var1
선택 사항입니다. 열 식의 결과를 참조하는 데 사용할 수 있는 별칭입니다.
fieldName1
필수 사항입니다. 쿼리 결과에서 반환할 필드의 이름입니다.
비고
이 절을 Select 사용하여 쿼리에서 반환할 결과를 정의할 수 있습니다. 이렇게 하면 쿼리에서 만든 새 익명 형식의 멤버를 정의하거나 쿼리에서 반환되는 명명된 형식의 멤버를 대상으로 지정할 수 있습니다.
Select 쿼리에는 절이 필요하지 않습니다. 절을 지정하지 Select 않으면 쿼리는 현재 범위에 대해 식별된 범위 변수의 모든 멤버를 기반으로 형식을 반환합니다. 자세한 내용은 익명 형식을 참조하세요. 쿼리에서 명명된 형식을 만들면 생성된 형식이 있는 T 형식 IEnumerable<T> 의 결과가 반환됩니다.
절은 Select 현재 범위의 모든 변수를 참조할 수 있습니다. 여기에는 절(또는 From 절)에서 From 식별된 범위 변수가 포함됩니다. 또한 쿼리 식의 이전 Select 절에서 별칭, Let절 Group By또는 Group Join 변수로 Aggregate만든 새 변수도 포함됩니다. 절에는 Select 정적 값도 포함될 수 있습니다. 예를 들어 다음 코드 예제에서는 절에서 쿼리 결과를 4개의 멤버DiscountedPriceDiscountPriceProductName가 있는 Select 새 익명 형식으로 정의하는 쿼리 식을 보여 줍니다. 및 Price 멤버 값은 ProductName 절에 정의된 제품 범위 변수에서 From 가져옵니다.
DiscountedPrice 멤버 값은 절에서 계산됩니다Let. 멤버가 Discount 정적 값입니다.
' 10% discount
Dim discount_10 = 0.1
Dim priceList =
From product In products
Let DiscountedPrice = product.UnitPrice * (1 - discount_10)
Select product.ProductName, Price = product.UnitPrice,
Discount = discount_10, DiscountedPrice
이 절은 Select 후속 쿼리 절에 대한 새 범위 변수 집합을 도입하며 이전 범위 변수는 더 이상 범위에 없습니다. 쿼리 식의 마지막 Select 절은 쿼리의 반환 값을 결정합니다. 예를 들어 다음 쿼리는 합계가 500을 초과하는 모든 고객 주문에 대한 회사 이름 및 주문 ID를 반환합니다. 첫 번째 Select 절은 절의 범위 변수와 두 번째 Select 절을 식별합니다Where. 두 번째 Select 절은 쿼리에서 반환된 값을 새 익명 형식으로 식별합니다.
Dim customerList = From cust In customers, ord In cust.Orders
Select Name = cust.CompanyName,
Total = ord.Total, ord.OrderID
Where Total > 500
Select Name, OrderID
절이 Select 반환할 단일 항목을 식별하는 경우 쿼리 식은 해당 단일 항목 형식의 컬렉션을 반환합니다. 이 절이 Select 반환할 여러 항목을 식별하는 경우 쿼리 식은 선택한 항목에 따라 새 무명 형식의 컬렉션을 반환합니다. 예를 들어 다음 두 쿼리는 절에 Select 따라 서로 다른 두 형식의 컬렉션을 반환합니다. 첫 번째 쿼리는 회사 이름의 컬렉션을 문자열로 반환합니다. 두 번째 쿼리는 회사 이름과 주소 정보로 채워진 개체 컬렉션을 Customer 반환합니다.
Dim customerNames = From cust In customers
Select cust.CompanyName
Dim customerInfo As IEnumerable(Of Customer) =
From cust In customers
Select New Customer With {.CompanyName = cust.CompanyName,
.Address = cust.Address,
.City = cust.City,
.Region = cust.Region,
.Country = cust.Country}
예시
다음 쿼리 식은 절을 From 사용하여 컬렉션에 대한 범위 변수 cust 를 선언합니다 customers . 절은 Select 고객 이름 및 ID 값을 선택하고 새 범위 변수의 CompanyName 열과 CustomerID 열을 채웁니다. 문은 For Each 반환된 각 개체를 반복하고 각 레코드에 CompanyName 대한 열과 CustomerID 열을 표시합니다.
Sub SelectCustomerNameAndId(ByVal customers() As Customer)
Dim nameIds = From cust In customers
Select cust.CompanyName, cust.CustomerID
For Each nameId In nameIds
Console.WriteLine(nameId.CompanyName & ": " & nameId.CustomerID)
Next
End Sub
참고하십시오
- Visual Basic LINQ 소개
- 쿼리
- From 절
- Where 절
- Order By 절
- 익명 형식
.NET