Where-Klausel (Visual Basic)
Gibt die Filterbedingung für eine Abfrage an.
Where condition
Teile
- condition
Erforderlich.Ein Ausdruck, mit dem ermittelt wird, ob die Werte des aktuellen Elements der Auflistung in die Ausgabeauflistung aufgenommen werden.Der Ausdruck muss sich zu einem Boolean-Wert oder dem Äquivalent eines Boolean-Werts evaluieren lassen.Wenn die Bedingung True ergibt, wird das Element in das Abfrageergebnis aufgenommen, andernfalls nicht.
Hinweise
Mit der Where-Klausel können Sie Abfragedaten filtern, indem nur die Elemente ausgewählt werden, die bestimmte Kriterien erfüllen.Elemente, durch deren Werte die Where-Klausel True ergibt, werden in das Abfrageergebnis aufgenommen, alle andere Elemente nicht.Der Ausdruck, der in einer Where-Klausel verwendet wird, muss sich zu einem Boolean oder dem Äquivalent eines Boolean evaluieren lassen, z. B. zu einem Integer-Wert, der False ergibt, wenn der Wert 0 (null) ist.Sie können in einer Where-Klausel mehrere Ausdrücke mithilfe von logischen Operatoren wie And, Or, AndAlso, OrElse, Is und IsNot kombinieren.
Standardmäßig werden Abfrageausdrücke nicht evaluiert, bis auf sie zugegriffen wird, beispielsweise wenn sie datengebunden sind oder in einer For-Schleife durchlaufen werden.Deshalb wird die Where-Klausel erst ausgewertet, wenn auf die Abfrage zugegriffen wird.Wenn Sie über Werte verfügen, die für die Abfrage extern sind und die in der Where-Klausel verwendet werden, stellen Sie sicher, dass die entsprechenden Werte zum Zeitpunkt der Ausführung der Abfrage in der Where-Klausel verwendet werden.Weitere Informationen zur Abfrageausführung finden Sie unter Schreiben der ersten LINQ-Abfrage (Visual Basic).
In einer Where-Klausel können Sie Funktionen aufrufen, um für einen Wert des aktuellen Elements der Auflistung eine Berechnung oder Operation durchzuführen.Durch das Aufrufen einer Funktion in einer Where-Klausel wird die Abfrage möglicherweise unmittelbar bei der Definition und nicht erst beim Zugriff ausgeführt.Weitere Informationen zur Abfrageausführung finden Sie unter Schreiben der ersten LINQ-Abfrage (Visual Basic).
Beispiel
Der folgende Abfrageausdruck verwendet eine From-Klausel zum Deklarieren einer Bereichsvariablen cust für jedes Customer-Objekt in der customers-Auflistung.Die Where-Klausel verwendet die Bereichsvariable, um die Ausgabe auf Kunden aus der angegebenen Region einzuschränken.Die For Each-Schleife zeigt den Namen des Unternehmens 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
Im folgenden Beispiel wird And und Or logische Operatoren in der Where-Klausel.
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 auch
Referenz
For Each...Next-Anweisung (Visual Basic)
Konzepte
Einführung in LINQ in Visual Basic