From, clause (Visual Basic)

Spécifie une ou plusieurs variables de plage et une collection à interroger.

Syntax

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

Éléments

Terme Définition
element Obligatoire. Variable de portée utilisée pour itérer au sein des éléments de la collection. Une variable de portée est utilisée pour faire référence à chaque membre du au collection fur et à mesure que la requête itère au sein de collection . Doit être un type énumérable.
type Optionnel. Type d'élément element. Si aucun type n’est spécifié, le type de element est déduit à partir de collection .
collection Obligatoire. Fait référence à la collection à interroger. Doit être un type énumérable.

Remarques

La From clause est utilisée pour 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. Ces variables sont appelées variables de portée. La From clause est requise pour une requête, sauf lorsque la Aggregate clause est utilisée pour identifier une requête qui retourne uniquement des résultats agrégés. Pour plus d’informations, consultez Aggregate, clause.

Vous pouvez spécifier plusieurs From clauses dans une requête pour identifier plusieurs collections à joindre. Lorsque plusieurs regroupements sont spécifiés, ils sont itérés indépendamment ou vous pouvez les joindre s’ils sont liés. Vous pouvez joindre implicitement des collections à l’aide de la Select clause, ou explicitement à l’aide des Join Group Join clauses ou. En guise d’alternative, vous pouvez spécifier plusieurs variables de plage et collections dans une seule From clause, chaque variable de portée et collection étant séparée des autres par une virgule. L’exemple de code suivant montre les deux options de syntaxe pour la 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 From clause définit la portée d’une requête, qui est similaire à la portée d’une For boucle. Par conséquent, chaque variable de portée element dans l’étendue d’une requête doit avoir un nom unique. Étant donné que vous pouvez spécifier plusieurs From clauses pour une requête, From les clauses suivantes peuvent faire référence à des variables de portée dans la From clause, ou elles peuvent faire référence à des variables de portée dans une From clause précédente. Par exemple, l’exemple suivant montre une clause imbriquée dans From 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.

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

Chaque From clause peut être suivie d’une combinaison quelconque de clauses de requête supplémentaires pour affiner la requête. Vous pouvez affiner la requête de l’une des manières suivantes :

  • Combinez plusieurs collections implicitement en utilisant From les Select clauses et, ou explicitement à l’aide des Join Group Join clauses ou.

  • Utilisez la Where clause pour filtrer le résultat de la requête.

  • Triez le résultat à l’aide de la Order By clause.

  • Regroupez les résultats similaires en utilisant la Group By clause.

  • Utilisez la Aggregate clause pour identifier les fonctions d’agrégation à évaluer pour l’ensemble du résultat de la requête.

  • Utilisez la Let clause pour introduire une variable d’itération dont la valeur est déterminée par une expression au lieu d’une collection.

  • Utilisez la Distinct clause pour ignorer les résultats de la requête en double.

  • Identifiez les parties du résultat à retourner à l’aide des Skip Take Skip While clauses,, et Take While .

Exemple

L’expression de requête suivante utilise une From clause pour déclarer une variable cust de portée pour chaque Customer objet de la customers collection. La Where clause utilise la variable de portée pour limiter la sortie aux clients de la région spécifiée. La For Each boucle affiche le nom de la société pour chaque client dans le résultat de la requête.

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 aussi