Sdílet prostřednictvím


Select – 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 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

From – klauzule (Visual Basic)

Where – klauzule (Visual Basic)

Order By – klauzule (Visual Basic)

Koncepty

Představení technologie LINQ v jazyce Visual Basic

Anonymní typy (Visual Basic)

Další zdroje

Dotazy (Visual Basic)