Condividi tramite


Clausola From (Visual Basic)

Aggiornamento: novembre 2007

Specifica uno o più variabili di intervallo e un insieme su cui eseguire una query.

From element [ As type ] In collection [ _ ]
  [, element2 [ As type2 ] In collection2 [, ... ] ]

Parti

  • element
    Obbligatorio. Una variabile di intervallo utilizzata per scorrere gli elementi dell'insieme. Una variabile di intervallo viene utilizzata per fare riferimento a ogni membro di collection quando la query scorre collection. Deve essere un tipo enumerabile.

  • type
    Facoltativo. Tipo di element. Se non è specificato alcun type, il tipo di element viene dedotto da collection.

  • collection
    Obbligatorio. Fa riferimento all'insieme su cui deve essere eseguita la query. Deve essere un tipo enumerabile.

Note

La clausola From viene utilizzata per identificare i dati di origine per una query e le variabili utilizzate per fare riferimento a un elemento dall'insieme di origine. Queste variabili sono chiamate variabili di intervallo. La clausola From è obbligatoria per una query, salvo quando viene utilizzata la clausola Aggregate per identificare una query che restituisce solo risultati aggregati. Per ulteriori informazioni, vedere Clausola di aggregazione (Visual Basic).

È possibile specificare più clausole From in una query per identificare più insiemi da unire. Quando sono specificati più insiemi, l'iterazione viene eseguita su ognuno in modo indipendente, oppure è possibile unirli se sono correlati. È possibile unire gli insiemi implicitamente utilizzando la clausola Select o in modo esplicito utilizzando le clausole Join o Group Join In alternativa, è possibile specificare più variabili di intervallo e insiemi in una sola clausola From, con ogni variabile di intervallo correlata e ogni insieme separati dagli altri da una virgola. Nell'esempio di codice seguente vengono illustrate entrambe le opzioni di sintassi per la clausola From.

' 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 clausola From definisce l'ambito di una query, che è simile all'ambito di un ciclo For. Pertanto, la variabile di intervallo di ogni element nell'ambito di una query deve avere un nome univoco. Poiché è possibile specificare più clausole From per una query, le clausole From successive possono fare riferimento alle variabili di intervallo nella clausola From oppure possono fare riferimento alle variabili di intervallo in una clausola From precedente. Nell'esempio seguente viene illustrata una clausola From nidificata in cui l'insieme nella seconda clausola è basato su una proprietà della variabile di intervallo della prima clausola.

Dim allOrders = From cust In GetCustomerList() _
                From ord In cust.Orders _
                Select ord

Ogni clausola From può essere seguita da una qualsiasi combinazione di clausole query aggiuntive per perfezionare la query. A tale proposito, è possibile procedere come indicato di seguito:

  • Unire gli insiemi implicitamente utilizzando le clausole From e Select, oppure in modo esplicito utilizzando le clausole Join o Group Join

  • Utilizzare la clausola Where per filtrare il risultato della query.

  • Ordinare il risultato utilizzando la clausola Order By.

  • Raggruppare risultati simili utilizzando la clausola Group By.

  • Utilizzare la clausola Aggregate per identificare funzioni di aggregazione per valutare l'intero risultato della query.

  • Utilizzare la clausola Let per introdurre una variabile di iterazione il cui valore viene determinato da un'espressione anziché da un insieme.

  • Utilizzare la clausola Distinct per ignorare i risultati duplicati della query.

  • Identificare parti del risultato da restituire utilizzando le clausole Skip, Take, Skip Whilee Take While

Esempio

Nell'espressione di query seguente viene utilizzata una clausola From per dichiarare una variabile di intervallo cust per ogni oggetto Customer nell'insieme customers. La clausola Where utilizza la variabile di intervallo per restringere l'output ai clienti dalla regione specificata. Il ciclo For Each visualizza il nome di azienda 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

Vedere anche

Concetti

Introduzione a LINQ in Visual Basic

Riferimenti

Istruzione For Each...Next (Visual Basic)

Istruzione For...Next (Visual Basic)

Clausola Select (Visual Basic)

Clausola Where (Visual Basic)

Clausola di aggregazione (Visual Basic)

Clausola Distinct (Visual Basic)

Clausola Join (Visual Basic)

Clausola Group Join (Visual Basic)

Clausola Order By (Visual Basic)

Clausola Let (Visual Basic)

Clausola Skip (Visual Basic)

Clausola Take (Visual Basic)

Clausola Skip While (Visual Basic)

Clausola Take While (Visual Basic)

Altre risorse

Query (Visual Basic)