Clausola From (Visual Basic)
Specifica una o più variabili di intervallo e una raccolta da eseguire in query.
Sintassi
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Parti
Termine | Definizione |
---|---|
element |
Obbligatorio. Variabile di intervallo usata per scorrere gli elementi della raccolta. Una variabile di intervallo viene usata per fare riferimento a ogni membro dell'oggetto come l'iterazione collection della query tramite .collection Deve essere un tipo enumerabile. |
type |
Facoltativa. Tipo di element . Se non type viene specificato alcun oggetto, il tipo di element viene dedotto da collection . |
collection |
Obbligatorio. Fa riferimento alla raccolta da eseguire una query. Deve essere un tipo enumerabile. |
Commenti
La From
clausola viene usata per identificare i dati di origine per una query e le variabili usate per fare riferimento a un elemento dalla raccolta di origine. Queste variabili sono denominate variabili di intervallo. La From
clausola è necessaria per una query, tranne quando la Aggregate
clausola viene usata per identificare una query che restituisce solo risultati aggregati. Per altre informazioni, vedere Clausola di aggregazione.
È possibile specificare più From
clausole in una query per identificare più raccolte da aggiungere. Quando vengono specificate più raccolte, vengono iterate in modo indipendente oppure è possibile aggiungerle se sono correlate. È possibile aggiungere raccolte in modo implicito usando la Select
clausola o in modo esplicito usando le Join
clausole o Group Join
. In alternativa, è possibile specificare più variabili di intervallo e raccolte in una singola From
clausola, con ogni variabile di intervallo correlata e raccolta separata dagli altri da una virgola. Nell'esempio di codice seguente vengono illustrate entrambe le opzioni di sintassi per la From
clausola .
' Multiple From clauses in a query.
Dim result = From var1 In collection1, var2 In collection2
' Equivalent syntax with a single From clause.
Dim result2 = From var1 In collection1
From var2 In collection2
La From
clausola definisce l'ambito di una query, simile all'ambito di un For
ciclo. Pertanto, ogni element
variabile di intervallo nell'ambito di una query deve avere un nome univoco. Poiché è possibile specificare più From
clausole per una query, le clausole successive From
possono fare riferimento a variabili di intervallo nella clausola oppure possono fare riferimento a variabili di intervallo in From
una clausola precedente From
. Nell'esempio seguente, ad esempio, viene illustrata una clausola annidata in cui la raccolta nella seconda clausola si basa su una proprietà della variabile di intervallo From
nella prima clausola.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
Ogni From
clausola può essere seguita da qualsiasi combinazione di clausole di query aggiuntive per perfezionare la query. È possibile perfezionare la query nei modi seguenti:
Combinare più raccolte in modo implicito usando le
From
clausole eSelect
o in modo esplicito usando leJoin
clausole oGroup Join
.Usare la clausola per filtrare il
Where
risultato della query.Ordinare il risultato usando la
Order By
clausola .Raggruppare risultati simili usando la
Group By
clausola .Usare la
Aggregate
clausola per identificare le funzioni di aggregazione per valutare l'intero risultato della query.Utilizzare la
Let
clausola per introdurre una variabile di iterazione il cui valore è determinato da un'espressione anziché da una raccolta.Usare la clausola per ignorare i
Distinct
risultati delle query duplicati.Identificare le parti del risultato da restituire usando le
Skip
clausole , ,Take
Skip While
eTake While
.
Esempio
L'espressione di query seguente usa una clausola per dichiarare una From
variabile cust
di intervallo per ogni Customer
oggetto nell'insieme customers
. La Where
clausola usa la variabile di intervallo per limitare l'output ai clienti dall'area specificata. Il For Each
ciclo visualizza il nome della società per ogni cliente nel risultato della query.
Sub DisplayCustomersForRegion(ByVal customers As List(Of Customer),
ByVal region As String)
Dim customersForRegion = From cust In customers
Where cust.Region = region
For Each cust In customersForRegion
Console.WriteLine(cust.CompanyName)
Next
End Sub