Where-Klausel (Visual Basic)Where Clause (Visual Basic)

Gibt die filterbedingung für eine Abfrage an.Specifies the filtering condition for a query.

SyntaxSyntax

Where condition  

TeileParts

condition
Erforderlich.Required. Ein Ausdruck, der bestimmt, ob die Werte für das aktuelle Element in der Auflistung in der Output-Auflistung enthalten sind.An expression that determines whether the values for the current item in the collection are included in the output collection. Muss der Ausdruck ausgewertet, um eine Boolean Wert oder die Darstellung einer Boolean Wert.The expression must evaluate to a Boolean value or the equivalent of a Boolean value. Wenn das Ergebnis der bedingungsauswertung True, das Element im Resultset Abfrage enthalten, andernfalls das Element wird aus dem Abfrageergebnis ausgeschlossen.If the condition evaluates to True, the element is included in the query result; otherwise, the element is excluded from the query result.

HinweiseRemarks

Die Where -Klausel ermöglichen es Ihnen, Abfragen von Daten zu filtern, dazu nur Elemente, die bestimmte Kriterien erfüllen.The Where clause enables you to filter query data by selecting only elements that meet certain criteria. Elemente, deren Werte bewirken, dass, die Where Klausel ergibt True befinden sich im Resultset Abfrage; andere Elemente ausgeschlossen werden.Elements whose values cause the Where clause to evaluate to True are included in the query result; other elements are excluded. Der Ausdruck, der verwendet wird eine Where Klausel ergeben muss eine Boolean oder die Entsprechung von einer Boolean, z. B. eine ganze Zahl, der ergibt False Wenn der Wert 0 (null) ist.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. Sie können in mehrere Ausdrücke kombinieren einer Where Klausel, indem Sie logische Operatoren wie z. B. And, Or, AndAlso, OrElse, Is, und IsNot.You can combine multiple expressions in a Where clause by using logical operators such as And, Or, AndAlso, OrElse, Is, and IsNot.

In der Standardeinstellung Abfrageausdrücke werden erst ausgewertet, darauf zugegriffen wird, z. B. Wenn sie sind datengebunden oder durchlaufen in einer For Schleife.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. Daher die Where Klausel wird nicht ausgewertet, bis die Abfrage zugegriffen wird.As a result, the Where clause is not evaluated until the query is accessed. Wenn Sie die Werte für die Abfrage, die verwendet werden extern haben die Where -Klausel, stellen Sie sicher, dass der entsprechende Wert, in verwendet wird der Where Klausel, die zum Zeitpunkt der Ausführung der Abfrage.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. Weitere Informationen zur Ausführung von Abfragen finden Sie unter Schreiben Ihrer ersten LINQ-Abfrage.For more information about query execution, see Writing Your First LINQ Query.

Sie können Funktionen aufrufen einer Where -Klausel, um eine Berechnung oder Operation auf einen Wert aus dem aktuellen Element in der Auflistung ausführen.You can call functions within a Where clause to perform a calculation or operation on a value from the current element in the collection. Aufrufen einer Funktion in einer Where Klausel kann dazu führen, dass die Abfrage ausgeführt werden, sofort wenn er nicht definiert wird, wenn darauf zugegriffen wird.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. Weitere Informationen zur Ausführung von Abfragen finden Sie unter Schreiben Ihrer ersten LINQ-Abfrage.For more information about query execution, see Writing Your First LINQ Query.

BeispielExample

Der folgende Abfrageausdruck verwendet eine From -Klausel, um eine Bereichsvariable deklarieren cust für jede Customer -Objekt in der customers Auflistung.The following query expression uses a From clause to declare a range variable cust for each Customer object in the customers collection. Die Where -Klausel verwendet die Bereichsvariable, um die Ausgabe auf Kunden aus den angegebenen Bereich zu beschränken.The Where clause uses the range variable to restrict the output to customers from the specified region. Die For Each -Schleife zeigt den Firmennamen für jeden Kunden in den Abfrageergebnissen.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

BeispielExample

Im folgenden Beispiel wird And und Or logische Operatoren in der Where Klausel.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

Siehe auchSee also