var1
Opcjonalny. Alias, który może służyć do odwołowania się do wyników wyrażenia kolumny.
fieldName1
Wymagany. Nazwa pola, które ma być zwracane w wyniku zapytania.
Uwagi
Możesz użyć klauzuli Select , aby zdefiniować wyniki, które mają być zwracane z zapytania. Dzięki temu można zdefiniować elementy członkowskie nowego typu anonimowego utworzonego przez zapytanie lub kierować do elementów członkowskich nazwanego typu zwracanego przez zapytanie. Klauzula nie jest wymagana Select dla zapytania. Jeśli nie Select określono klauzuli, zapytanie zwróci typ na podstawie wszystkich elementów członkowskich zmiennych zakresu zidentyfikowanych dla bieżącego zakresu. Aby uzyskać więcej informacji, zobacz Typy anonimowe. Gdy zapytanie tworzy nazwany typ, zwróci wynik typu IEnumerable<T> , w którym T jest tworzony typ.
Klauzula Select może odwoływać się do dowolnych zmiennych w bieżącym zakresie. Obejmuje to zmienne zakresu zidentyfikowane w klauzuli From (lub From klauzulach). Zawiera również wszelkie nowe zmienne utworzone z aliasem według Aggregateklauzul , Let, Group ByGroup Join lub ze zmiennych z poprzedniej Select klauzuli w wyrażeniu zapytania. Klauzula Select może również zawierać wartości statyczne. Na przykład poniższy przykład kodu przedstawia wyrażenie zapytania, w którym Select klauzula definiuje wynik zapytania jako nowy typ anonimowy z czterema elementami członkowskimi: ProductName, Price, Discounti DiscountedPrice. Wartości ProductName składowe i Price są pobierane ze zmiennej zakresu produktów zdefiniowanej w klauzuli From . Wartość DiscountedPrice elementu członkowskiego jest obliczana w klauzuli Let . Element Discount członkowski jest wartością statyczną.
VB
' 10% discount Dim discount_10 = 0.1Dim priceList =
From product In products
Let DiscountedPrice = product.UnitPrice * (1 - discount_10)
Select product.ProductName, Price = product.UnitPrice,
Discount = discount_10, DiscountedPrice
Klauzula Select wprowadza nowy zestaw zmiennych zakresu dla kolejnych klauzul zapytania, a poprzednie zmienne zakresu nie są już w zakresie. Select Ostatnia klauzula w wyrażeniu zapytania określa wartość zwracaną zapytania. Na przykład następujące zapytanie zwraca nazwę firmy i identyfikator zamówienia dla każdego zamówienia klienta, dla którego suma przekracza 500. Select Pierwsza klauzula identyfikuje zmienne zakresu klauzuli Where i drugą Select klauzulę. Druga Select klauzula identyfikuje wartości zwracane przez zapytanie jako nowy typ anonimowy.
VB
Dim customerList = From cust In customers, ord In cust.Orders
Select Name = cust.CompanyName,
Total = ord.Total, ord.OrderID
Where Total > 500Select Name, OrderID
Jeśli klauzula Select identyfikuje pojedynczy element do zwrócenia, wyrażenie zapytania zwraca kolekcję typu tego pojedynczego elementu. Jeśli klauzula Select identyfikuje wiele elementów do zwrócenia, wyrażenie zapytania zwraca kolekcję nowego typu anonimowego na podstawie wybranych elementów. Na przykład następujące dwa zapytania zwracają kolekcje dwóch różnych typów na podstawie klauzuli Select . Pierwsze zapytanie zwraca kolekcję nazw firm jako ciągów. Drugie zapytanie zwraca kolekcję Customer obiektów wypełnionych nazwami firmy i informacjami o adresach.
VB
Dim customerNames = From cust In customers
Select cust.CompanyName
Dim customerInfo As IEnumerable(Of Customer) =
From cust In customers
SelectNew Customer With {.CompanyName = cust.CompanyName,
.Address = cust.Address,
.City = cust.City,
.Region = cust.Region,
.Country = cust.Country}
Przykład
Następujące wyrażenie zapytania używa klauzuli w From celu zadeklarowania zmiennej cust zakresu dla kolekcji customers . Klauzula Select wybiera nazwę klienta i wartość identyfikatora oraz wypełnia CompanyName kolumny i CustomerID nowej zmiennej zakresu. Instrukcja For Each wykonuje pętle dla każdego zwróconego obiektu i wyświetla CompanyName kolumny i CustomerID dla każdego rekordu.
VB
Sub SelectCustomerNameAndId(ByVal customers() As Customer)
Dim nameIds = From cust In customers
Select cust.CompanyName, cust.CustomerID
ForEach nameId In nameIds
Console.WriteLine(nameId.CompanyName & ": " & nameId.CustomerID)
NextEndSub
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię:
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.