Cláusula Where (Visual Basic)Where Clause (Visual Basic)

Especifica a condição de filtragem para uma consulta.Specifies the filtering condition for a query.

SintaxeSyntax

Where condition  

PartesParts

condition
Necessário.Required. Uma expressão que determina se os valores para o item atual na coleção são incluídos na coleção de saída.An expression that determines whether the values for the current item in the collection are included in the output collection. A expressão deve ser avaliada como um Boolean valor ou o equivalente a um Boolean valor.The expression must evaluate to a Boolean value or the equivalent of a Boolean value. 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.If the condition evaluates to True, the element is included in the query result; otherwise, the element is excluded from the query result.

ComentáriosRemarks

O Where cláusula permite que você filtre os dados da consulta, selecionando apenas os elementos que atendem a certos critérios.The Where clause enables you to filter query data by selecting only elements that meet certain criteria. Elementos cujos valores fazem com que o Where cláusula a ser avaliada como True estão incluídos no resultado da consulta; outros elementos são excluídos.Elements whose values cause the Where clause to evaluate to True are included in the query result; other elements are excluded. A expressão que é usada em uma Where cláusula deve ser avaliada como uma Boolean ou o equivalente de uma Boolean, como um inteiro que é avaliada como False quando seu valor é zero.The expression that is used in a Where clause must evaluate to a Boolean or the equivalent of a Boolean, such as an Integer that evaluates to False when its value is zero. Você pode combinar várias expressões em uma Where cláusula usando operadores lógicos, como And, Or, AndAlso, OrElse, Is, e IsNot.You can combine multiple expressions in a Where clause by using logical operators such as And, Or, AndAlso, OrElse, Is, and IsNot.

Por padrão, expressões de consulta não são avaliadas até que sejam acessadas — por exemplo, quando eles são associados a dados ou repetidas através uma For loop.By default, query expressions are not evaluated until they are accessed—for example, when they are data-bound or iterated through in a For loop. Como resultado, o Where cláusula não é avaliada até que a consulta seja acessada.As a result, the Where clause is not evaluated until the query is accessed. Se você tiver valores externos a consulta que são usados na Where cláusula, certifique-se de que o valor apropriado é usado no Where cláusula no momento em que a consulta é executada.If you have values external to the query that are used in the Where clause, ensure that the appropriate value is used in the Where clause at the time the query is executed. Para obter mais informações sobre a execução da consulta, consulte escrever sua primeira consulta de LINQ.For more information about query execution, see Writing Your First LINQ Query.

Você pode chamar funções em um Where cláusula para executar um cálculo ou uma operação em um valor do elemento atual na coleção.You can call functions within a Where clause to perform a calculation or operation on a value from the current element in the collection. Chamar uma função em um Where cláusula pode fazer com que a consulta a ser executada imediatamente quando ele é definido em vez de quando ele é acessado.Calling a function in a Where clause can cause the query to be executed immediately when it is defined instead of when it is accessed. Para obter mais informações sobre a execução da consulta, consulte escrever sua primeira consulta de LINQ.For more information about query execution, see Writing Your First LINQ Query.

ExemploExample

A seguinte consulta de expressão usa uma From cláusula para declarar uma variável de intervalo cust para cada Customer objeto o customers coleção.The following query expression uses a From clause to declare a range variable cust for each Customer object in the customers collection. O Where cláusula usa a variável de intervalo para restringir a saída para os clientes da região especificada.The Where clause uses the range variable to restrict the output to customers from the specified region. O For Each loop exibe o nome da empresa para cada cliente no resultado da consulta.The For Each loop displays the company name for each customer in the query result.

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

ExemploExample

O exemplo a seguir usa And e Or operadores lógicos no Where cláusula.The following example uses And and Or logical operators in the Where clause.

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émSee also