Gdy klauzula (Visual Basic)
Określa warunek filtrowania dla kwerendy.
Where condition
Części
- condition
Wymagane.Wyrażenie, które określa, czy wartości dla bieżącego elementu w kolekcji są uwzględnione w zbiorze danych wyjściowych.Wyrażenie musi zwrócić Boolean wartość lub równoważne z Boolean wartości.Jeśli warunek nie jest True, element jest wliczana do wyniku kwerendy; w przeciwnym razie element jest wyłączone z wyniku kwerendy.
Uwagi
Where Klauzula umożliwia filtrowanie danych kwerendy, wybierając tylko te elementy, które spełniają określone kryteria.Elementy, których wartości powodują Where klauzuli do oceny do True są zawarte w wyniku kwerendy; inne elementy są wyłączone.Wyrażenie, które jest używane w Where klauzuli musi dawać w wyniku Boolean lub równoważne z Boolean, takich jak liczba całkowita, którego wynikiem jest False podczas jego wartość wynosi zero.Można łączyć wiele wyrażeń w Where klauzuli za pomocą operatorów logicznych, takich jak And, Or, AndAlso, OrElse, Is, i IsNot.
Domyślnie wyrażenia w kwerendzie nie są oceniane i dopóki nie będą one dostępne — na przykład, gdy są one powiązane z danymi lub iterowany poprzez w For pętli.W związku z powyższym Where klauzuli nie jest sprawdzane, aż kwerenda jest dostępny.Jeśli masz wartości zewnętrznych do kwerendy, które są używane w Where klauzuli, zapewnienia, że odpowiednie wartości jest używane w Where klauzuli w czasie, kwerenda jest wykonywana.Aby uzyskać więcej informacji na temat wykonanie kwerendy, zobacz Pisanie pierwszej kwerendy LINQ (Visual Basic).
Można wywołać funkcji w ramach Where klauzuli wykonywanie obliczeń lub operacji na wartość bieżącego elementu w kolekcji.Wywołanie funkcji Where klauzula może spowodować, że kwerenda ma być wykonywane natychmiast, gdy jest on zdefiniowany zamiast, gdy jest dostęp do.Aby uzyskać więcej informacji na temat wykonanie kwerendy, zobacz Pisanie pierwszej kwerendy LINQ (Visual Basic).
Przykład
Poniższa kwerenda używa wyrażenia From klauzuli deklarowania zmiennej zakres cust dla każdego Customer obiekt w customers kolekcji.Where Klauzuli użyto zmiennej zakres, aby ograniczyć dane wyjściowe do klientów z określonego regionu.For Each Pętli Wyświetla nazwę firmy, dla każdego odbiorcy w wyniku kwerendy.
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
W poniższym przykładzie użyto And i Or operatory logiczne w Where klauzuli.
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
Zobacz też
Informacje
Wybierz klauzuli (Visual Basic)
Dla każdego...Następna instrukcja (Visual Basic)
Koncepcje
Wprowadzenie do LINQ w języku Visual Basic