Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Spécifie la condition de filtrage d’une requête.
Syntaxe
Where condition
Pièces
condition
Obligatoire. Expression qui détermine si les valeurs de l’élément actif de la collection sont incluses dans la collection de sorties. L’expression doit évaluer une Boolean
valeur ou l’équivalent d’une Boolean
valeur. Si la condition prend la valeur True
, l’élément est inclus dans le résultat de la requête ; sinon, l’élément est exclu du résultat de la requête.
Remarques
La Where
clause vous permet de filtrer les données de requête en sélectionnant uniquement les éléments qui répondent à certains critères. Éléments dont les valeurs entraînent l’évaluation True
de la Where
clause dans le résultat de la requête ; d’autres éléments sont exclus. L’expression utilisée dans une Where
clause doit être évaluée à un Boolean
ou à l’équivalent d’un Boolean
entier, tel qu’un entier dont la valeur est égale à False
zéro. Vous pouvez combiner plusieurs expressions dans une Where
clause à l’aide d’opérateurs logiques tels que And
, , Or
, AndAlso
, OrElse
, Is
et IsNot
.
Par défaut, les expressions de requête ne sont pas évaluées tant qu’elles ne sont pas consultées, par exemple lorsqu’elles sont liées aux données ou itérées dans une For
boucle. Par conséquent, la Where
clause n’est pas évaluée tant que la requête n’est pas accessible. Si vous avez des valeurs externes à la requête utilisée dans la Where
clause, vérifiez que la valeur appropriée est utilisée dans la Where
clause au moment de l’exécution de la requête. Pour plus d’informations sur l’exécution des requêtes, consultez Écriture de votre première requête LINQ.
Vous pouvez appeler des fonctions dans une Where
clause pour effectuer un calcul ou une opération sur une valeur à partir de l’élément actuel de la collection. L’appel d’une fonction dans une Where
clause peut entraîner l’exécution de la requête immédiatement lorsqu’elle est définie au lieu du moment où elle est accessible. Pour plus d’informations sur l’exécution des requêtes, consultez Écriture de votre première requête LINQ.
Exemple 1
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
Exemple 2
L’exemple suivant utilise et Or
les And
opérateurs logiques dans la Where
clause.
Private Sub DisplayElements()
Dim elements As List(Of Element) = BuildList()
' Get a list of elements that have an atomic number from 12 to 14,
' or that have a name that ends in "r".
Dim subset = From theElement In elements
Where (theElement.AtomicNumber >= 12 And theElement.AtomicNumber < 15) _
Or theElement.Name.EndsWith("r")
Order By theElement.Name
For Each theElement In subset
Console.WriteLine(theElement.Name & " " & theElement.AtomicNumber)
Next
' Output:
' Aluminum 13
' Magnesium 12
' Silicon 14
' Sulfur 16
End Sub
Private Function BuildList() As List(Of Element)
Return New List(Of Element) From
{
{New Element With {.Name = "Sodium", .AtomicNumber = 11}},
{New Element With {.Name = "Magnesium", .AtomicNumber = 12}},
{New Element With {.Name = "Aluminum", .AtomicNumber = 13}},
{New Element With {.Name = "Silicon", .AtomicNumber = 14}},
{New Element With {.Name = "Phosphorous", .AtomicNumber = 15}},
{New Element With {.Name = "Sulfur", .AtomicNumber = 16}}
}
End Function
Public Class Element
Public Property Name As String
Public Property AtomicNumber As Integer
End Class