Where, clause (Visual Basic)Where Clause (Visual Basic)

Spécifie la condition de filtrage pour une requête.Specifies the filtering condition for a query.

SyntaxeSyntax

Where condition  

ComposantsParts

condition
Obligatoire.Required. Une expression qui détermine si les valeurs de l’élément actuel dans la collection sont inclus dans la collection de sortie.An expression that determines whether the values for the current item in the collection are included in the output collection. L’expression doit correspondre à un Boolean valeur ou l’équivalent d’un Boolean valeur.The expression must evaluate to a Boolean value or the equivalent of a Boolean value. 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 des résultats de la requête.If the condition evaluates to True, the element is included in the query result; otherwise, the element is excluded from the query result.

NotesRemarks

Le 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.The Where clause enables you to filter query data by selecting only elements that meet certain criteria. Les éléments dont les valeurs font la Where clause soit évaluée comme True sont inclus dans le résultat de la requête ; autres éléments sont exclus.Elements whose values cause the Where clause to evaluate to True are included in the query result; other elements are excluded. L’expression qui est utilisée dans un Where clause doit correspondre à un Boolean ou l’équivalent d’un Boolean, comme un entier qui prend la valeur False lorsque sa valeur est égale à zéro.The expression that is used in a Where clause must evaluate to a Boolean or the equivalent of a Boolean, such as an Integer that evaluates to False when its value is zero. Vous pouvez combiner plusieurs expressions dans un Where clause à l’aide des opérateurs logiques tels que And, Or, AndAlso, OrElse, Is, et IsNot.You can combine multiple expressions in a Where clause by using logical operators such as And, Or, AndAlso, OrElse, Is, and IsNot.

Par défaut, les expressions de requête ne sont pas évaluées jusqu'à ce qu’ils sont accessibles, par exemple, lorsqu’ils sont liés aux données ou itérées via dans un For boucle.By default, query expressions are not evaluated until they are accessed—for example, when they are data-bound or iterated through in a For loop. Par conséquent, le Where clause n’est pas évaluée jusqu'à ce que la requête est accessible.As a result, the Where clause is not evaluated until the query is accessed. Si des valeurs externes à la requête sont utilisées dans le Where clause, vérifiez que la valeur appropriée est utilisée dans le Where clause au moment de la requête est exécutée.If you have values external to the query that are used in the Where clause, ensure that the appropriate value is used in the Where clause at the time the query is executed. Pour plus d’informations sur l’exécution des requêtes, consultez écrire votre première requête LINQ.For more information about query execution, see Writing Your First LINQ Query.

Vous pouvez appeler des fonctions dans un Where clause pour effectuer un calcul ou une opération sur une valeur de l’élément actuel dans la collection.You can call functions within a Where clause to perform a calculation or operation on a value from the current element in the collection. Appel d’une fonction un Where clause peut entraîner la requête doit être exécutée immédiatement lorsqu’il est défini à la place de lorsqu’il est accessible.Calling a function in a Where clause can cause the query to be executed immediately when it is defined instead of when it is accessed. Pour plus d’informations sur l’exécution des requêtes, consultez écrire votre première requête LINQ.For more information about query execution, see Writing Your First LINQ Query.

ExempleExample

La requête suivante expression utilise un From clause pour déclarer une variable de portée cust pour chaque Customer de l’objet dans le customers collection.The following query expression uses a From clause to declare a range variable cust for each Customer object in the customers collection. Le Where clause utilise la variable de portée pour restreindre la sortie aux clients à partir de la région spécifiée.The Where clause uses the range variable to restrict the output to customers from the specified region. Le For Each boucle affiche le nom de société pour chaque client dans le résultat de la requête.The For Each loop displays the company name for each customer in the query result.

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

ExempleExample

L’exemple suivant utilise And et Or des opérateurs logiques dans le Where clause.The following example uses And and Or logical operators in the 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

Voir aussiSee also