Partager via


From, clause (Visual Basic)

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

Syntaxe

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

Pièces

Terme Définition
element Obligatoire. Variable de plage utilisée pour itérer dans les éléments de la collection. Une variable de plage est utilisée pour faire référence à chaque membre de la collection requête en tant qu’itère au sein de la collectionrequête . Doit être un type énumérable.
type Optionnel. Type de element. Si aucun n’est type spécifié, le type de element données est déduit 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 plage. 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 les résultats agrégés. Pour plus d’informations, consultez La clause d’agrégation.

Vous pouvez spécifier plusieurs From clauses dans une requête pour identifier plusieurs collections à joindre. Lorsque plusieurs collections sont spécifiées, elles sont itérées indépendamment, ou vous pouvez les joindre si elles sont associées. Vous pouvez joindre implicitement des collections à l’aide de la Select clause, ou explicitement à l’aide des Join ou Group Join des clauses. En guise d’alternative, vous pouvez spécifier plusieurs variables de plage et collections dans une seule From clause, avec chaque variable de plage associée et collection 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 l’étendue d’une requête, qui est similaire à l’étendue d’une For boucle. Par conséquent, chaque element variable de plage 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, les clauses suivantes From peuvent faire référence à des variables de plage dans la From clause, ou elles peuvent faire référence à des variables de plage dans une clause précédente From . Par exemple, l’exemple suivant montre une clause imbriquée From où la collection dans la deuxième clause est basée sur une propriété de la variable de plage dans la première clause.

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

Chaque From clause peut être suivie de n’importe quelle combinaison de clauses de requête supplémentaires pour affiner la requête. Vous pouvez affiner la requête de la manière suivante :

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

  • 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 des résultats similaires à l’aide de 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 requête en double.

  • Identifiez les parties du résultat à retourner à l’aide des Skipclauses , , TakeSkip Whileet Take While .

Exemple :

L’expression de requête suivante utilise une From clause pour déclarer une variable cust de plage pour chaque Customer objet de la customers collection. La Where clause utilise la variable de plage pour restreindre 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