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 e Select o in modo esplicito usando le Join clausole o Group 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 Skipclausole , , TakeSkip Whilee Take 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

Vedi anche