Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt die Filterbedingung für eine Abfrage an.
Syntax
Where condition
Bestandteile
condition
Erforderlich. Ein Ausdruck, der bestimmt, ob die Werte für das aktuelle Element in der Auflistung in der Ausgabeauflistung enthalten sind. Der Ausdruck muss einen Boolean Wert oder eine Entsprechung eines Boolean Werts auswerten. Wenn die Bedingung ausgewertet wird True, wird das Element im Abfrageergebnis enthalten. Andernfalls wird das Element vom Abfrageergebnis ausgeschlossen.
Bemerkungen
Mit der Where Klausel können Sie Abfragedaten filtern, indem Sie nur Elemente auswählen, die bestimmte Kriterien erfüllen. Elemente, deren Werte dazu führen, dass die Where Klausel True in das Abfrageergebnis einbezogen wird; andere Elemente werden ausgeschlossen. Der Ausdruck, der in einer Where Klausel verwendet wird, muss auf ein Boolean oder das Äquivalent eines Werts BooleanFalse ausgewertet werden, z. B. eine ganze Zahl, die ausgewertet wird, wenn der Wert null ist. Sie können mehrere Ausdrücke in einer Where Klausel kombinieren, indem Sie logische Operatoren wie And, , Or, AndAlso, OrElse, Isund IsNot.
Standardmäßig werden Abfrageausdrücke erst ausgewertet, wenn auf sie zugegriffen wird , z. B. wenn sie datengebunden sind oder in einer For Schleife durchlaufen werden. Daher wird die Where Klausel erst ausgewertet, wenn auf die Abfrage zugegriffen wird. Wenn Sie externe Werte für die Abfrage haben, die in der Where Klausel verwendet werden, stellen Sie sicher, dass der entsprechende Wert zum Zeitpunkt der Ausführung der Abfrage in der Where Klausel verwendet wird. Weitere Informationen zur Abfrageausführung finden Sie unter Writing Your First LINQ Query.
Sie können Funktionen innerhalb einer Where Klausel aufrufen, um eine Berechnung oder einen Vorgang für einen Wert aus dem aktuellen Element in der Auflistung auszuführen. Das Aufrufen einer Funktion in einer Where Klausel kann dazu führen, dass die Abfrage sofort ausgeführt wird, wenn sie definiert wird, anstatt auf sie zugegriffen wird. Weitere Informationen zur Abfrageausführung finden Sie unter Writing Your First LINQ Query.
Beispiel 1
Der folgende Abfrageausdruck verwendet eine Klausel, um eine From Bereichsvariable cust für jedes Customer Objekt in der customers Auflistung zu deklarieren. Die Where Klausel verwendet die Bereichsvariable, um die Ausgabe auf Kunden aus der angegebenen Region einzuschränken. Die For Each Schleife zeigt den Firmennamen für jeden Kunden im Abfrageergebnis an.
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
Beispiel 2
Im folgenden Beispiel werden logische Operatoren in der Where Klausel verwendet And und Or verwendet.
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