Partilhar via


Cláusula Where (Visual Basic)

Especifica a condição de filtragem para uma consulta.

Sintaxe

Where condition  

Partes

condition
Obrigatório. Uma expressão que determina se os valores do item atual na coleção são incluídos na coleção de saída. A expressão deve ser avaliada como um Boolean valor ou o equivalente a um Boolean valor. Se a condição for avaliada como True, o elemento será incluído no resultado da consulta, caso contrário, o elemento será excluído do resultado da consulta.

Observações

A Where cláusula permite filtrar dados de consulta selecionando apenas elementos que atendem a determinados critérios. Os elementos cujos valores fazem com que a Where cláusula seja avaliada True são incluídos no resultado da consulta, outros elementos são excluídos. A expressão usada em uma Where cláusula deve ser avaliada como um Boolean ou o equivalente de um Boolean, como um Integer que avalia quando False seu valor é zero. Você pode combinar várias expressões em uma Where cláusula usando operadores lógicos como And, Or, , AndAlso, OrElseIs, e IsNot.

Por padrão, as expressões de consulta não são avaliadas até que sejam acessadas — por exemplo, quando são vinculadas a dados ou iteradas em um For loop. Como resultado, a Where cláusula não é avaliada até que a consulta seja acessada. Se você tiver valores externos à consulta que são usados na Where cláusula, certifique-se de que o valor apropriado seja usado na Where cláusula no momento em que a consulta for executada. Para obter mais informações sobre a execução de consultas, consulte Escrevendo sua primeira consulta LINQ.

Você pode chamar funções dentro de uma Where cláusula para executar um cálculo ou operação em um valor do elemento atual na coleção. Chamar uma função em uma Where cláusula pode fazer com que a consulta seja executada imediatamente quando ela é definida em vez de quando é acessada. Para obter mais informações sobre a execução de consultas, consulte Escrevendo sua primeira consulta LINQ.

Exemplo 1

A expressão de consulta a seguir usa uma From cláusula para declarar uma variável cust range para cada Customer objeto na customers coleção. A Where cláusula usa a variável range para restringir a saída aos clientes da região especificada. O For Each loop exibe o nome da empresa para cada cliente no resultado da consulta.

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

Exemplo 2

O exemplo a seguir usa And e Or operadores lógicos na Where cláusula.

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

Consulte também