Clausola From (Visual Basic)From Clause (Visual Basic)

Specifica una o più variabili di intervallo e una raccolta su cui eseguire una query.Specifies one or more range variables and a collection to query.

SintassiSyntax

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

PartiParts

NomeTerm DefinizioneDefinition
element Obbligatorio.Required. Variabile di intervallo utilizzata per scorrere gli elementi della raccolta.A range variable used to iterate through the elements of the collection. Una variabile di intervallo viene utilizzata per fare riferimento a ogni membro del collection quando la query esegue l'iterazione nel collection.A range variable is used to refer to each member of the collection as the query iterates through the collection. Deve essere un tipo enumerabile.Must be an enumerable type.
type facoltativo.Optional. Tipo di element.The type of element. Se non si specifica type, il tipo di element viene dedotto da collection.If no type is specified, the type of element is inferred from collection.
collection Obbligatorio.Required. Fa riferimento alla raccolta su cui eseguire una query.Refers to the collection to be queried. Deve essere un tipo enumerabile.Must be an enumerable type.

NoteRemarks

La clausola From viene utilizzata per identificare i dati di origine per una query e le variabili utilizzate per fare riferimento a un elemento della raccolta di origine.The From clause is used to identify the source data for a query and the variables that are used to refer to an element from the source collection. Queste variabili sono denominate variabili di intervallo.These variables are called range variables. La clausola From è obbligatoria per una query, tranne quando la clausola Aggregate viene utilizzata per identificare una query che restituisce solo i risultati aggregati.The From clause is required for a query, except when the Aggregate clause is used to identify a query that returns only aggregated results. Per ulteriori informazioni, vedere clausola Aggregate.For more information, see Aggregate Clause.

È possibile specificare più clausole From in una query per identificare più raccolte da unire in join.You can specify multiple From clauses in a query to identify multiple collections to be joined. Quando si specificano più raccolte, vengono ripetute in modo indipendente oppure è possibile unirle se sono correlate.When multiple collections are specified, they are iterated over independently, or you can join them if they are related. È possibile unire le raccolte in modo implicito usando la clausola Select oppure in modo esplicito usando le clausole Join o Group Join.You can join collections implicitly by using the Select clause, or explicitly by using the Join or Group Join clauses. In alternativa, è possibile specificare più variabili di intervallo e raccolte in una singola clausola From, con ogni variabile di intervallo e raccolta correlate separate dalle altre con una virgola.As an alternative, you can specify multiple range variables and collections in a single From clause, with each related range variable and collection separated from the others by a comma. Nell'esempio di codice seguente vengono illustrate entrambe le opzioni di sintassi per la clausola From.The following code example shows both syntax options for the From clause.

' 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.The From clause defines the scope of a query, which is similar to the scope of a For loop. Ogni variabile di intervallo element nell'ambito di una query deve pertanto avere un nome univoco.Therefore, each element range variable in the scope of a query must have a unique name. 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.Because you can specify multiple From clauses for a query, subsequent From clauses can refer to range variables in the From clause, or they can refer to range variables in a previous From clause. Ad esempio, nell'esempio seguente viene illustrata una clausola From annidata in cui la raccolta nella seconda clausola è basata su una proprietà della variabile di intervallo nella prima clausola.For example, the following example shows a nested From clause where the collection in the second clause is based on a property of the range variable in the first clause.

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

Ogni clausola From può essere seguita da qualsiasi combinazione di clausole di query aggiuntive per perfezionare la query.Each From clause can be followed by any combination of additional query clauses to refine the query. È possibile affinare la query nei modi seguenti:You can refine the query in the following ways:

  • Combinare più raccolte in modo implicito usando le clausole From e Select oppure in modo esplicito usando le clausole Join o Group Join.Combine multiple collections implicitly by using the From and Select clauses, or explicitly by using the Join or Group Join clauses.

  • Utilizzare la clausola Where per filtrare il risultato della query.Use the Where clause to filter the query result.

  • Ordinare il risultato usando la clausola Order By.Sort the result by using the Order By clause.

  • Raggruppare i risultati simili utilizzando la clausola Group By.Group similar results together by using the Group By clause.

  • Utilizzare la clausola Aggregate per identificare le funzioni di aggregazione da valutare per l'intero risultato della query.Use the Aggregate clause to identify aggregate functions to evaluate for the whole query result.

  • Utilizzare la clausola Let per introdurre una variabile di iterazione il cui valore è determinato da un'espressione anziché da una raccolta.Use the Let clause to introduce an iteration variable whose value is determined by an expression instead of a collection.

  • Utilizzare la clausola Distinct per ignorare i risultati della query duplicati.Use the Distinct clause to ignore duplicate query results.

  • Identificare le parti del risultato da restituire utilizzando le clausole Skip, Take, Skip While e Take While.Identify parts of the result to return by using the Skip, Take, Skip While, and Take While clauses.

EsempioExample

Nell'espressione di query seguente viene utilizzata una clausola From per dichiarare una variabile di intervallo cust per ogni oggetto Customer nella raccolta customers.The following query expression uses a From clause to declare a range variable cust for each Customer object in the customers collection. La clausola Where usa la variabile di intervallo per limitare l'output ai clienti dall'area specificata.The Where clause uses the range variable to restrict the output to customers from the specified region. Il ciclo For Each Visualizza il nome della società per ogni cliente nel risultato della query.The For Each loop displays the company name for each customer in the query result.

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 ancheSee also