Partager via


Where, clause (Visual Basic)

Spécifie la condition de filtrage pour une requête.

Where condition

Composants

  • condition
    Obligatoire. Expression qui détermine si les valeurs de l'élément actuel de la collection sont incluses dans la collection de sortie. L'expression doit prendre la valeur Boolean ou l'équivalent d'une valeur Boolean. Si la condition prend la valeur True, l'élément est inclus dans le résultat de la requête ; sinon, l'élément en est exclu.

Notes

La clause Where vous permet de filtrer les données de requête en sélectionnant uniquement les éléments qui répondent à certains critères. Les éléments dont les valeurs font que la clause Where prend la valeur True sont inclus dans le résultat de la requête ; les autres éléments sont exclus. L'expression utilisée dans une clause Where doit prendre la valeur Boolean ou l'équivalent d'un Boolean, tel qu'un entier qui correspond à la valeur False lorsque sa valeur est nulle. Vous pouvez associer plusieurs expressions dans une clause Where en utilisant des opérateurs logique tels que And, Or, AndAlso, OrElse, Is et IsNot.

Par défaut, les expressions de requête ne sont pas évaluées jusqu'à ce qu'elles soient accessibles, par exemple, lorsqu'elles sont liées aux données ou itérées au sein d'une boucle For. En conséquence, la clause Where n'est pas évaluée avant l'accès à la requête. Si des valeurs externes à la requête sont utilisées dans la clause Where, vérifiez que la valeur appropriée est utilisée dans la clause Where au moment où la requête est exécutée. Pour plus d'informations sur l'exécution de la requête, consultez Écriture de votre première requête LINQ (Visual Basic).

Vous pouvez appeler des fonctions dans une clause Where pour effectuer un calcul ou une opération sur une valeur de l'élément actuel de la collection. L'appel d'une fonction dans une clause Where peut provoquer l'exécution immédiate de la requête à sa définition plutôt qu'à son accès. Pour plus d'informations sur l'exécution de la requête, consultez Écriture de votre première requête LINQ (Visual Basic).

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 restreindre la sortie aux clients de la région spécifiée. La boucle For Each affiche le nom de 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

l'exemple suivant utilise And et des opérateurs logiques d' Or dans la clause d' Where .

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

Voir aussi

Référence

From, clause (Visual Basic)

Select, clause (Visual Basic)

For Each...Next, instruction (Visual Basic)

Concepts

Introduction à LINQ dans Visual Basic

Autres ressources

Requêtes (Visual Basic)