Where (Cláusula, Visual Basic)
Especifica la condición de filtrado para una consulta.
Sintaxis
Where condition
Partes
condition
Necesario. 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 Boolean un valor o el equivalente de un Boolean valor. Si la condición se evalúa como , el elemento se incluye en el resultado de la consulta; de lo contrario, el elemento True se excluye del resultado de la consulta.
Comentarios
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 cláusula se evalúe como se incluyen en el resultado de la Where True consulta; se excluyen otros elementos. La expresión que se usa en una cláusula debe evaluarse como o el equivalente de , como un entero que se evalúa como Where cuando su valor es Boolean Boolean False cero. Puede combinar varias expresiones en una cláusula mediante operadores lógicos Where como , , , , y And Or AndAlso OrElse Is IsNot .
De forma predeterminada, las expresiones de consulta no se evalúan hasta que se accede a ellas, por ejemplo, cuando se enlazan a datos o se iteran en un For bucle. Como resultado, la cláusula no se evalúa hasta que se accede a Where la consulta. Si tiene valores externos a la consulta que se usan en la cláusula , asegúrese de que se usa el valor adecuado en la cláusula en el momento en que Where Where se ejecuta la consulta. Para obtener más información sobre la ejecución de consultas, vea Escribir la primera consulta LINQ.
Puede llamar a funciones dentro de una cláusula para realizar un cálculo u Where operación en un valor del elemento actual de la colección. Llamar a una función en una cláusula puede hacer que la consulta se ejecute inmediatamente cuando se define en lugar de Where cuando se accede a ella. Para obtener más información sobre la ejecución de consultas, vea Escribir la primera consulta LINQ.
Ejemplo 1
La siguiente expresión de consulta usa From una cláusula para declarar una variable de rango para cada objeto de la cust Customer customers colección. La Where cláusula usa la variable range para restringir la salida a los clientes de la región especificada. El For Each bucle muestra el nombre de la empresa 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 And usan Or los operadores lógicos y 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