Select 절(Visual Basic)
쿼리 결과를 정의합니다.
구문
Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]
부분
var1
선택 사항. 열 식의 결과를 참조하는 데 사용할 수 있는 별칭입니다.
fieldName1
필수입니다. 쿼리 결과에 반환할 필드의 이름입니다.
설명
Select
절을 사용하여 쿼리에서 반환할 결과를 정의할 수 있습니다. 이를 통해 쿼리로 만들어진 새로운 무명 형식의 멤버를 정의하거나 쿼리에서 반환된 명명된 형식의 멤버를 대상으로 지정할 수 있습니다. 쿼리에는 Select
절이 필요하지 않습니다. Select
절이 지정되지 않은 경우 쿼리는 현재 범위에 대해 식별된 범위 변수의 모든 멤버를 기반으로 형식을 반환합니다. 자세한 내용은 무명 형식을 참조하세요. 쿼리가 명명된 형식을 만들면 T
가 만들어진 형식인 IEnumerable<T> 형식의 결과를 반환합니다.
Select
절은 현재 범위의 모든 변수를 참조할 수 있습니다. 여기에는 From
절(또는 From
절)에서 식별된 범위 변수가 포함됩니다. 또한 Aggregate
, Let
, Group By
또는 Group Join
절에 의해 별칭으로 만들어진 새 변수나 쿼리 식의 이전 Select
절에서 가져온 변수도 포함됩니다. Select
절에는 정적 값도 포함될 수 있습니다. 예를 들어, 다음 코드 예에서는 Select
절이 쿼리 결과를 4개의 멤버(ProductName
, Price
, Discount
및 DiscountedPrice
)가 있는 새로운 무명 형식으로 정의하는 쿼리 식을 보여 줍니다. ProductName
및 Price
멤버 값은 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
절은 Where
절과 두 번째 Select
절의 범위 변수를 식별합니다. 두 번째 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
절을 사용하여 customers
컬렉션에 대한 범위 변수 cust
를 선언합니다. 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
참고 항목
.NET