Where (Cláusula, Visual Basic)
Especifica la condición de filtrado de una consulta.
Where condition
Elementos
- condition
Obligatorio. Expresión que determina si se incluyen en la colección de salida los valores del elemento actual de la colección. La expresión debe evaluarse como un valor de tipo Boolean o el equivalente de un valor de tipo Boolean. Si la condición se evalúa como True, se incluye el elemento en el resultado de la consulta; de lo contrario, se excluye el elemento del resultado.
Comentarios
La cláusula Where permite filtrar los datos de una consulta seleccionando únicamente los elementos que cumplen determinados criterios. Los elementos cuyos valores hacen que la cláusula Where se evalúe como True se incluyen en el resultado de la consulta; los demás elementos se excluyen. La expresión que se usa en una cláusula Where debe evaluarse como un valor de tipo Boolean o el equivalente de un valor de tipo Boolean, como un entero que se evalúa como False cuando su valor es cero. Puede combinar varias expresiones en una cláusula Where mediante operadores lógicos, como And, Or, AndAlso, OrElse, Is e IsNot.
De forma predeterminada, no se evalúan las expresiones de consulta hasta que se obtenga acceso a ellas; por ejemplo, cuando se enlazan a datos o se recorren en iteración en un bucle For. Como resultado, no se evalúa la cláusula Where hasta que se obtenga acceso a la consulta. Si se usan valores externos a la consulta en la cláusula Where, asegúrese de que se usa el valor adecuado en la cláusula Where cuando se ejecute la consulta. Para obtener más información sobre la ejecución de consultas, vea Escribir la primera consulta con LINQ (Visual Basic).
Puede llamar a las funciones en una cláusula Where para realizar un cálculo u operación con un valor del elemento actual de la colección. Al llamar a una función en una cláusula Where, es posible que la consulte se ejecute inmediatamente en el momento de su definición y no cuando se obtiene acceso a ella. Para obtener más información sobre la ejecución de consultas, vea Escribir la primera consulta con LINQ (Visual Basic).
Ejemplo
La siguiente expresión de consulta usa una cláusula From para declarar una variable de rango cust para cada objeto Customer de la colección customers. La cláusula Where usa la variable de rango para restringir el resultado a los clientes de la región especificada. El bucle For Each muestra el nombre de la compañía de 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
El ejemplo siguiente utiliza And y operadores lógicos de Or en la cláusula de Where .
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
Vea también
Referencia
Select (Cláusula, Visual Basic)
Instrucción For Each...Next (Visual Basic)
Conceptos
Introducción a LINQ en Visual Basic