Vyberte klauzule (Visual Basic)
Definuje výsledek dotazu.
Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]
Části
var1
Nepovinné.Alias lze odkazovat na výsledky výrazu sloupec.fieldName1
Povinné.Název pole, vraťte se do výsledku dotazu.
Poznámky
Můžete použít Select klauzule definovat výsledků vrácených z dotazu.Můžete buď definovat členy nové anonymní typ dotazu vytváří nebo cílových členů s názvem typ, který je vrácených dotazem.Select Klauzule není vyžadováno pro dotaz.Pokud ne Select je zadána klauzule, dotaz vrátí typ založené na všechny členy rozsah proměnné pro aktuální obor.Další informace naleznete v tématu Anonymní typy (Visual Basic).Dotaz vytvoří pojmenovaného typu, vrátí výsledek typu IEnumerable<T> kde T je typ vytvořené.
Select Klauzule může odkazovat na všech proměnných v aktuálním oboru.To zahrnuje proměnné rozsah uvedený v From klauzule (nebo From klauzule).Obsahuje také všechny nové proměnné vytvořené pomocí aliasu podle Aggregate, Let, Group By, nebo Group Join doložky nebo proměnné z předchozí Select klauzule ve výrazu dotazu.Select Klauzule mohou také obsahovat statické hodnoty.Například následující příklad kódu ukazuje výraz dotazu ve kterém Select klauzule definuje jako nové anonymní typ s čtyři členy výsledek dotazu: ProductName, Price, Discount, a DiscountedPrice.ProductName a Price hodnoty členů jsou převzaty z proměnné rozsah produktu definovaného v From klauzule.DiscountedPrice Se vypočítá hodnota člena v Let klauzule.Discount Člen je statická hodnota.
' 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 Klauzule zavádí novou sadu rozsah proměnné pro následné klauzule a předchozí rozsah proměnné jsou již v oboru.Poslední Select klauzule ve výrazu dotazu určuje vrácenou hodnotu dotazu.Například následující dotaz vrací společnost název a pořadí ID pro každé objednávce zákazníka, jehož součet převyšuje 500.První Select klauzule označuje rozsah proměnné Where klauzule a druhý Select klauzule.Druhý Select identifikuje klauzule dotazu jako nové anonymní typ vrácené hodnoty.
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
Pokud Select klauzule označuje jednu položku vrátit, výrazu dotazu vrátí kolekci položek jednoho typu.Pokud Select klauzule označuje vrátit více položek, výrazu dotazu vrátí kolekci nové anonymní typ na základě vybrané položky.Například následující dva dotazy vrátí kolekce dva různé typy na základě Select klauzule.První dotaz vrátí kolekci názvy společností jako řetězce.Druhý dotaz vrátí kolekci Customer objekty naplněn názvy společností a informace o adrese.
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}
Příklad
Následující dotaz používá výraz From klauzule rozsahu proměnné deklarovat cust pro customers kolekce.Select Klauzule vybere hodnotu ID a název zákazníka a vyplní CompanyName a CustomerID nové proměnné rozsah sloupců.For Each Prohlášení smyčku přes každý vrácený objekt a zobrazí CompanyName a CustomerID sloupce pro každý záznam.
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
Viz také
Referenční dokumentace
Koncepty
Úvod do jazyka Visual Basic LINQ