Udostępnij za pośrednictwem


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

Z klauzuli (Visual Basic)

Gdy klauzula (Visual Basic)

Kolejność według klauzuli (Visual Basic)

Koncepcje

Wprowadzenie do LINQ w języku Visual Basic

Typy anonimowe (Visual Basic)

Inne zasoby

Kwerendy (Visual Basic)