From, clause (Visual Basic)From Clause (Visual Basic)

Spécifie une ou plusieurs variables de plage et une collection à interroger.Specifies one or more range variables and a collection to query.

SyntaxeSyntax

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

ComposantsParts

TermeTerm DéfinitionDefinition
element Requis.Required. Variable de portée utilisée pour itérer au sein des éléments de la collection.A range variable used to iterate through the elements of the collection. Une variable de portée est utilisée pour faire référence à chaque membre du collection lorsque la requête itère au sein du collection.A range variable is used to refer to each member of the collection as the query iterates through the collection. Doit être un type énumérable.Must be an enumerable type.
type Ce paramètre est facultatif.Optional. Type d'élément element.The type of element. Si aucun type n’est spécifié, le type de element est déduit à partir de collection.If no type is specified, the type of element is inferred from collection.
collection Requis.Required. Fait référence à la collection à interroger.Refers to the collection to be queried. Doit être un type énumérable.Must be an enumerable type.

NotesRemarks

La clause From permet d’identifier les données sources d’une requête et les variables utilisées pour faire référence à un élément de la collection source.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. Ces variables sont appelées variables de portée.These variables are called range variables. La clause From est requise pour une requête, sauf lorsque la clause Aggregate est utilisée pour identifier une requête qui retourne uniquement des résultats agrégés.The From clause is required for a query, except when the Aggregate clause is used to identify a query that returns only aggregated results. Pour plus d’informations, consultez Aggregate, clause.For more information, see Aggregate Clause.

Vous pouvez spécifier plusieurs clauses From dans une requête pour identifier plusieurs collections à joindre.You can specify multiple From clauses in a query to identify multiple collections to be joined. Lorsque plusieurs regroupements sont spécifiés, ils sont itérés indépendamment ou vous pouvez les joindre s’ils sont liés.When multiple collections are specified, they are iterated over independently, or you can join them if they are related. Vous pouvez joindre implicitement des collections à l’aide de la clause Select, ou explicitement à l’aide des clauses Join ou Group Join.You can join collections implicitly by using the Select clause, or explicitly by using the Join or Group Join clauses. En guise d’alternative, vous pouvez spécifier plusieurs variables et collections de portée dans une seule clause From, avec chaque variable de portée associée et chaque collection, séparées par une virgule.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. L’exemple de code suivant affiche les deux options de syntaxe pour la clause 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 clause From définit la portée d’une requête, qui est similaire à la portée d’une boucle For.The From clause defines the scope of a query, which is similar to the scope of a For loop. Par conséquent, chaque element variable de portée dans l’étendue d’une requête doit avoir un nom unique.Therefore, each element range variable in the scope of a query must have a unique name. Étant donné que vous pouvez spécifier plusieurs clauses de From pour une requête, les clauses de From suivantes peuvent faire référence à des variables de portée dans la clause From, ou elles peuvent faire référence à des variables de portée dans une clause From précédente.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. Par exemple, l’exemple suivant montre une clause From imbriquée dans laquelle la collection de la deuxième clause est basée sur une propriété de la variable de portée dans la première clause.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

Chaque clause de From peut être suivie d’une combinaison quelconque de clauses de requête supplémentaires pour affiner la requête.Each From clause can be followed by any combination of additional query clauses to refine the query. Vous pouvez affiner la requête de l’une des manières suivantes :You can refine the query in the following ways:

  • Combinez plusieurs collections implicitement en utilisant les clauses From et Select, ou explicitement à l’aide des clauses Join ou Group Join.Combine multiple collections implicitly by using the From and Select clauses, or explicitly by using the Join or Group Join clauses.

  • Utilisez la clause Where pour filtrer le résultat de la requête.Use the Where clause to filter the query result.

  • Triez le résultat à l’aide de la clause Order By.Sort the result by using the Order By clause.

  • Regrouper les résultats similaires à l’aide de la clause Group By.Group similar results together by using the Group By clause.

  • Utilisez la clause Aggregate pour identifier les fonctions d’agrégation à évaluer pour l’ensemble du résultat de la requête.Use the Aggregate clause to identify aggregate functions to evaluate for the whole query result.

  • Utilisez la clause Let pour introduire une variable d’itération dont la valeur est déterminée par une expression au lieu d’une collection.Use the Let clause to introduce an iteration variable whose value is determined by an expression instead of a collection.

  • Utilisez la clause Distinct pour ignorer les résultats de la requête en double.Use the Distinct clause to ignore duplicate query results.

  • Identifiez les parties du résultat à retourner à l’aide des clauses Skip, Take, Skip Whileet Take While.Identify parts of the result to return by using the Skip, Take, Skip While, and Take While clauses.

ExempleExample

L’expression de requête suivante utilise une clause From pour déclarer une variable de portée cust pour chaque objet Customer dans la collection customers.The following query expression uses a From clause to declare a range variable cust for each Customer object in the customers collection. La clause Where utilise la variable de portée pour limiter la sortie aux clients de la région spécifiée.The Where clause uses the range variable to restrict the output to customers from the specified region. La boucle For Each affiche le nom de la société pour chaque client dans le résultat de la requête.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

Voir aussiSee also