Udostępnij za pośrednictwem


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

Z klauzuli (Visual Basic)

Wybierz klauzuli (Visual Basic)

Dla każdego...Następna instrukcja (Visual Basic)

Koncepcje

Wprowadzenie do LINQ w języku Visual Basic

Inne zasoby

Kwerendy (Visual Basic)