Sdílet prostřednictvím


Pokud klauzule (Visual Basic)

Určuje podmínku filtrování dotazu.

Where condition

Části

  • condition
    Povinné.Výraz, který určuje, zda jsou hodnoty pro aktuální položky v kolekci zahrnuty v kolekci výstup.Výraz musí být Boolean hodnotu nebo ekvivalentní Boolean hodnotu.Pokud bude podmínka vyhodnocena jako True, prvek je součástí výsledku dotazu; jinak je prvek vyloučeny z výsledků dotazu.

Poznámky

Where Klauzule umožňuje filtrovat data dotazu výběrem pouze prvky, které splňují určitá kritéria.Prvky, jejichž hodnoty způsobit Where klauzule vyhodnoceny True se do výsledku dotazu; jsou vyloučeny jiné prvky.Výraz, který se používá v Where doložka musí být Boolean nebo ekvivalentní Boolean, jako celé číslo, jehož výsledkem False při jeho hodnota je nula.Můžete kombinovat více výrazů v Where klauzule pomocí logických operátorů jako And, Or, AndAlso, OrElse, Is, a IsNot.

Standardně výrazy dotazu nebudou vyhodnoceny až k nim – například když jsou vázán na data nebo prostřednictvím iterated v For smyčky.Výsledkem Where klauzule není vyhodnocena, dokud dotaz je přístupná.Pokud máte externí použitého v dotazu hodnoty Where klauzule, zajistit odpovídající hodnota je v Where klauzule v době spuštění dotazu.Další informace o spuštění dotazu viz Psaní prvního LINQ dotazu (Visual Basic).

Můžete volat funkce v rámci Where klauzule provést výpočet nebo operaci na hodnotu aktuální prvek v kolekci.Volání funkce v Where způsobit klauzule dotazu, které mají být provedeny okamžitě při definované místo, když je k dispozici.Další informace o spuštění dotazu viz Psaní prvního LINQ dotazu (Visual Basic).

Příklad

Následující dotaz používá výraz From klauzule rozsahu proměnné deklarovat cust pro každou Customer objektu v customers kolekce.Where Klauzule používá proměnná rozsah omezení výstupu zákazníkům ze stanovené pěstitelské oblasti.For Each Smyčky zobrazuje název společnosti pro každého zákazníka ve výsledku dotazu.

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

Následující příklad používá And a Or v logické operátory Where klauzule.

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

Viz také

Referenční dokumentace

Z klauzule (Visual Basic)

Vyberte klauzule (Visual Basic)

Pro každý...Další příkaz (Visual Basic)

Koncepty

Úvod do jazyka Visual Basic LINQ

Další zdroje

Dotazy (Visual Basic)