From, clause (Visual Basic)
Spécifie une ou plusieurs variables de portée et une collection à interroger.
Syntaxe
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 l’itération dans les éléments de la collection. Une variable de portée est utilisée pour faire référence à chaque membre de la collection pendant l’itération de la requête dans la 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 inféré de collection . |
collection |
Obligatoire. Fait référence à la collection à interroger. Doit être un type énumérable. |
Notes
La clause From
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 clause From
est requise pour une requête, sauf si la clause Aggregate
est utilisée pour identifier une requête qui retourne uniquement des résultats agrégés. Pour plus d’informations, consultez Clause Aggregate.
Vous pouvez spécifier plusieurs clauses From
dans une requête pour identifier plusieurs collections à joindre. Quand plusieurs collections sont spécifiées, elles sont itérées de manière indépendante. Vous pouvez également les joindre si elles sont associées. Vous pouvez joindre des collections implicitement en utilisant la clause Select
ou explicitement en utilisant la clause Join
ou la clause Group Join
. Vous pouvez également spécifier plusieurs variables de portée et plusieurs collections dans une seule clause From
en séparant chaque association de variable de portée et collection par une virgule. L’exemple de code suivant montre les deux options de syntaxe de la clause 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 clause From
définit la portée d’une requête, qui est similaire à la portée d’une boucle For
. Ainsi, chaque variable de portée element
dans la portée d’une requête doit avoir un nom unique. Étant donné que vous pouvez spécifier plusieurs clauses From
pour une requête, les clauses From
suivantes peuvent faire référence à des variables de portée dans la clause From
ou à des variables de portée dans une clause From
précédente. L’exemple suivant montre une clause From
imbriquée où la collection dans 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 clause From
peut être suivie de n’importe quelle combinaison de clauses de requête supplémentaires, vous permettant d’affiner la requête. Vous pouvez affiner la requête en utilisant les méthodes suivantes :
Combiner plusieurs collections implicitement en utilisant les clauses
From
etSelect
ou explicitement en utilisant la clauseJoin
ou la clauseGroup Join
.Utiliser la clause
Where
pour filtrer le résultat de la requête.Trier le résultat en utilisant la clause
Order By
.Grouper des résultats similaires en utilisant la clause
Group By
.Utiliser la clause
Aggregate
pour identifier les fonctions d’agrégation à évaluer pour l’ensemble du résultat de la requête.Utiliser la clause
Let
pour introduire une variable d’itération dont la valeur est déterminée par une expression et non à partir d’une collection.Utiliser la clause
Distinct
pour ignorer les résultats de requête en double.Identifier les parties du résultat à retourner en utilisant les clauses
Skip
,Take
,Skip While
etTake While
.
Exemple
L’expression de requête suivante utilise une clause From
pour déclarer une variable de portée cust
pour chaque objet Customer
de la collection customers
. La clause Where
utilise la variable de portée pour limiter la sortie aux clients de la région spécifiée. La boucle For Each
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
- Requêtes
- Introduction à LINQ en Visual Basic
- For Each...Next (instruction)
- For...Next (instruction)
- Select (clause)
- Where (clause)
- Aggregate (clause)
- Distinct (clause)
- Join (clause)
- Group Join (clause)
- Order By (clause)
- Let (clause)
- Skip (clause)
- Take (clause)
- Skip While (clause)
- Take While (clause)