Condividi tramite


Clausola From (Visual Basic)

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

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

Parti

Termine

Definizione

element

Obbligatorio. Una variabile di intervallo utilizzata per scorrere gli elementi della raccolta. 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

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

collection

Obbligatorio. Fa riferimento alla raccolta 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 dalla raccolta 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 Aggregate (Visual Basic).

È possibile specificare più clausole From in una query per identificare più raccolte da unire. Quando sono specificati più raccolte, l'iterazione viene eseguita su ognuna in modo indipendente, oppure è possibile unirle se sono correlate. È possibile unire le raccolte 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 raccolte in una sola clausola From, con ogni variabile di intervallo correlata e ogni raccolta separate dalle altre 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 annidata in cui la raccolta nella seconda clausola è basata 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 le raccolte 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 una raccolta.

  • 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 nella raccolta 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

Riferimenti

Istruzione For Each...Next (Visual Basic)

Istruzione For...Next (Visual Basic)

Clausola Select (Visual Basic)

Clausola Where (Visual Basic)

Clausola Aggregate (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)

Concetti

Introduzione a LINQ in Visual Basic

Altre risorse

Query (Visual Basic)