Wybierz klauzuli (Visual Basic)
Określa wynik kwerendy.
Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]
Części
var1
Opcjonalne.Alias można używać do odwoływania się wyniki wyrażenia dla kolumny.fieldName1
Wymagane.Nazwa pola, aby powrócić do wyniku kwerendy.
Uwagi
Można użyć Select klauzuli, aby zdefiniować wyniki, aby powrócić z kwerendy.Dzięki temu można zdefiniować członków nowy typ anonimowy, utworzony przez kwerendę lub docelowa członków nazwany typ, który jest zwracany przez kwerendę.Select Klauzuli nie jest wymagane dla kwerendy.Jeśli nie Select klauzuli jest określony, kwerenda będzie zwracać typ, na podstawie wszystkich członków zmiennych zakres określone dla bieżącego zakresu.Aby uzyskać więcej informacji, zobacz Typy anonimowe (Visual Basic).Gdy kwerenda tworzy typ nazwany, zwróci wynik typu IEnumerable<T> gdzie T jest utworzony typ.
Select Klauzuli można odwoływać się do wszelkich zmiennych w bieżącym zakresie.Obejmuje to zakres zmiennych określonych w From klauzuli (lub From klauzul).Obejmuje również wszelkie nowe zmienne utworzone za pomocą aliasu przez Aggregate, Let, Group By, lub Group Join klauzul lub zmienne z poprzedniej Select klauzuli w wyrażeniu kwerendy.Select Klauzula może również zawierać wartości statycznej.Na przykład, poniższy przykład kodu pokazuje wyrażenie kwerendy, w której Select klauzuli określa wynik kwerendy jako nowy typ anonimowy z czterech członków: ProductName, Price, Discount, i DiscountedPrice.ProductName i Price Członkowskich wartości są pobierane z zmienna zakres produktu, która jest zdefiniowana w From klauzuli.DiscountedPrice Członkowskich wartość jest obliczana w Let klauzuli.Discount Członek jest wartością statyczną.
' 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 Klauzuli wprowadzono nowy zestaw zmiennych zakres dla kolejnych kwerend klauzul i poprzednich zmiennych zakresu nie są już w zakres.Ostatni Select klauzuli w wyrażeniu kwerendy określa wartość zwracaną przez kwerendę.Na przykład poniższa kwerenda zwraca firmy nazwy i kolejność identyfikator dla każdego zamówienia klienta, dla którego całkowita przekracza 500.Pierwszy Select klauzuli identyfikuje zmiennych zakres dla Where klauzuli i drugi Select klauzuli.Drugi Select klauzuli identyfikuje wartości zwracane przez kwerendy jako nowy typ anonimowy.
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
Jeśli Select klauzuli identyfikuje pojedynczy element, aby powrócić, wyrażeniu kwerendy zwraca kolekcję typu ten pojedynczy element.Jeśli Select klauzuli identyfikuje wiele elementów, aby powrócić, wyrażeniu kwerendy zwraca kolekcję nowy typ anonimowy, na podstawie wybranych elementów.Na przykład, następujące dwie kwerendy zwracają kolekcje dwa różne typy oparte na Select klauzuli.Pierwszą kwerendę zwraca kolekcję nazwy firmy jako ciągi znaków.Drugą kwerendę zwraca kolekcję Customer obiekty wypełnione nazwy firm i informacji adresowych.
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}
Przykład
Poniższa kwerenda używa wyrażenia From klauzuli deklarowania zmiennej zakres cust do customers kolekcji.Select Klauzuli wybiera nazwę klienta i wartość Identyfikatora i wypełnia CompanyName i CustomerID kolumny zmiennej nowego zakresu.For Each Instrukcji pętli nad każdym zwracany obiekt i wyświetla CompanyName i CustomerID kolumn dla każdego rekordu.
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
Zobacz też
Informacje
Kolejność według klauzuli (Visual Basic)
Koncepcje
Wprowadzenie do LINQ w języku Visual Basic