Compartir a través de


Cláusula Where (Visual Basic)

Especifica la condición de filtrado de una consulta.

Sintaxis

Where condition  

Partes

condition
Obligatorio. Expresión que determina si los valores del elemento actual de la colección se incluyen en la colección de salida. La expresión debe evaluarse como un Boolean valor o el equivalente de un Boolean valor. Si la condición se evalúa como True, el elemento se incluye en el resultado de la consulta; de lo contrario, el elemento se excluye del resultado de la consulta.

Observaciones

La Where cláusula permite filtrar los datos de consulta seleccionando solo los elementos que cumplen determinados criterios. Los elementos cuyos valores hacen que la Where cláusula se evalúe True se incluyan en el resultado de la consulta; se excluyen otros elementos. La expresión que se usa en una Where cláusula debe evaluarse como o Boolean el equivalente de , Booleancomo un entero que se evalúa False como cuando su valor es cero. Puede combinar varias expresiones en una Where cláusula mediante operadores lógicos como And, Or, AndAlso, OrElse, , Isy IsNot.

De forma predeterminada, las expresiones de consulta no se evalúan hasta que se acceden a ellas, por ejemplo, cuando se enlazan a datos o se recorren en iteración en un For bucle. Como resultado, la Where cláusula no se evalúa hasta que se accede a la consulta. Si tiene valores externos a la consulta que se usan en la Where cláusula , asegúrese de que el valor adecuado se usa en la Where cláusula en el momento en que se ejecuta la consulta. Para obtener más información sobre la ejecución de consultas, consulte Escritura de la primera consulta LINQ.

Puede llamar a funciones dentro de una Where cláusula para realizar un cálculo o una operación en un valor del elemento actual de la colección. Llamar a una función en una Where cláusula puede hacer que la consulta se ejecute inmediatamente cuando se define en lugar de cuando se accede a ella. Para obtener más información sobre la ejecución de consultas, consulte Escritura de la primera consulta LINQ.

Ejemplo 1

La siguiente expresión de consulta usa una From cláusula para declarar una variable cust de intervalo para cada Customer objeto de la customers colección. La Where cláusula usa la variable de intervalo para restringir la salida a los clientes de la región especificada. El For Each bucle muestra el nombre de la compañía para cada cliente en el resultado de la 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

Ejemplo 2

En el ejemplo siguiente se usan And operadores lógicos y Or en la 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 también