Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Definisce il risultato di una query.
Sintassi
Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]
Parti
var1
Opzionale. Alias che può essere utilizzato per fare riferimento ai risultati dell'espressione di colonna.
fieldName1
Obbligatorio. Nome del campo da restituire nel risultato della query.
Osservazioni:
È possibile usare la Select clausola per definire i risultati da restituire da una query. In questo modo è possibile definire i membri di un nuovo tipo anonimo creato da una query o definire come destinazione i membri di un tipo denominato restituito da una query. La Select clausola non è necessaria per una query. Se non viene specificata alcuna Select clausola, la query restituirà un tipo basato su tutti i membri delle variabili di intervallo identificate per l'ambito corrente. Per altre informazioni, vedere Tipi anonimi. Quando una query crea un tipo denominato, restituisce un risultato di tipo IEnumerable<T> in cui T è il tipo creato.
La Select clausola può fare riferimento a qualsiasi variabile nell'ambito corrente. Sono incluse le variabili di intervallo identificate nella From clausola (o From clausole). Include anche eventuali nuove variabili create con un alias dalle Aggregateclausole , LetGroup By, o Group Join variabili di una clausola precedente Select nell'espressione di query. La Select clausola può includere anche valori statici. Nell'esempio di codice seguente, ad esempio, viene illustrata un'espressione di query in cui la Select clausola definisce il risultato della query come nuovo tipo anonimo con quattro membri: ProductName, Price, Discounte DiscountedPrice. I ProductName valori dei membri e Price vengono ricavati dalla variabile dell'intervallo From di prodotti definita nella clausola . Il DiscountedPrice valore del membro viene calcolato nella Let clausola . Il Discount membro è un valore statico.
' 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
La Select clausola introduce un nuovo set di variabili di intervallo per le clausole di query successive e le variabili di intervallo precedenti non sono più nell'ambito. L'ultima Select clausola in un'espressione di query determina il valore restituito della query. Ad esempio, la query seguente restituisce il nome della società e l'ID ordine per ogni ordine cliente per il quale il totale supera 500. La prima Select clausola identifica le variabili di intervallo per la Where clausola e la seconda Select clausola. La seconda Select clausola identifica i valori restituiti dalla query come nuovo tipo anonimo.
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
Se la Select clausola identifica un singolo elemento da restituire, l'espressione di query restituisce una raccolta del tipo di tale singolo elemento. Se la Select clausola identifica più elementi da restituire, l'espressione di query restituisce una raccolta di un nuovo tipo anonimo, in base agli elementi selezionati. Ad esempio, le due query seguenti restituiscono raccolte di due tipi diversi in base alla Select clausola . La prima query restituisce una raccolta di nomi di società come stringhe. La seconda query restituisce una raccolta di Customer oggetti popolati con i nomi e le informazioni sull'indirizzo della società.
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}
Esempio
Nell'espressione di query seguente viene utilizzata una From clausola per dichiarare una variabile cust di intervallo per la customers raccolta. La Select clausola seleziona il nome del cliente e il valore ID e popola le CompanyName colonne e CustomerID della nuova variabile di intervallo. L'istruzione For Each esegue un ciclo su ogni oggetto restituito e visualizza le CompanyName colonne e CustomerID per ogni record.
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