Onde a cláusula (Visual Basic)

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

Where condition

Partes

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

Comentários

A cláusula Where permite que você filtre dados da consulta selecionando apenas os elementos que atendam a certos critérios.Elementos cujos valores fazem com que a cláusula Where seja avaliada como True são incluídos no resultado da consulta; outros elementos serão excluídos.A expressão que é usada em uma cláusula Where deve ser avaliada como um Boolean ou o equivalente de um Boolean, como um número inteiro que é avaliada como False quando seu valor é zero.Você pode combinar várias expressões em uma cláusula Where usando os operadores lógicos, como And,Or,AndAlso,OrElse,Is e IsNot.

Por padrão, expressões de consulta não são avaliadas até que elas sejam acessadas — por exemplo, quando elas são ligadas a dados ou repetidas através de um loop For.Como resultado, a cláusula Where não é avaliada até que a consulta seja acessada.Se você tiver valores externos a consulta que são usados na cláusula Where,certifique-se de que o valor apropriado é usado na cláusula Where no momento que a consulta é executada.Para obter mais informações sobre a execução de consulta, consulte Gravando a primeira consulta LINQ (Visual Basic).

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

Exemplo

A expressão de consulta a seguir usa uma cláusula From para declarar uma variável de intervalo cust para cada objeto Customer na coleção customers.A cláusula Where usa a variável de intervalo para restringir a saída para os clientes da região especificada.O loop For Each 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

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

Referência

(Visual Basic) da cláusula FROM

Selecione a cláusula (Visual Basic)

Para cada...Próxima instrução (Visual Basic)

Conceitos

Introdução ao LINQ em Visual Basic

Outros recursos

Consultas (Visual Basic)