Especifica una condición de filtrado de una consulta.
Sintaxis
VB
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 un valor Boolean o el equivalente de un valor Boolean. Si la condición se evalúa como True, el elemento se incluye en el resultado de la consulta; de lo contrario, se excluye.
Comentarios
La cláusula Where permite filtrar los datos de la consulta seleccionando solo 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 restantes elementos se excluyen. La expresión que se usa en una cláusula Where debe evaluarse como Boolean o el equivalente de Boolean, como un entero que se evalúa como False cuando su valor es cero. Para combinar varias expresiones en una cláusula Where, se usan operadores lógicos como And, Or, AndAlso, OrElse, Is y IsNot.
De forma predeterminada, las expresiones de consulta no se evalúan hasta que se accede a ellas (por ejemplo, cuando están enlazadas a datos o se recorren en un bucle For). En consecuencia, la cláusula Where no se evalúa hasta que se accede a la consulta. Si tiene valores externos a la consulta que se usen en la cláusula Where, asegúrese de que se usa el valor adecuado en la cláusula Where en el momento en que se ejecuta la consulta. Para más información sobre la ejecución de consultas, vea Escritura de la primera consulta con LINQ.
Puede llamar a funciones dentro de una cláusula Where para realizar cualquier cálculo u operación en un valor del elemento actual de la colección. Si llama a una función en una cláusula Where, puede hacer que la consulta se ejecute en cuanto se define, en lugar de cuando se accede a ella. Para más información sobre la ejecución de consultas, vea Escritura de la primera consulta con LINQ.
Ejemplo 1
En la expresión de consulta siguiente, se usa una cláusula From para declarar una variable de rango cust para cada objeto Customer en la colección customers. La cláusula Where usa la variable de rango para restringir la salida a los clientes de la región especificada. El bucle For Each muestra el nombre de la empresa de cada cliente en el resultado de la consulta.
VB
Sub DisplayCustomersForRegion(ByVal customers As List(Of Customer),
ByVal region AsString)
Dim customersForRegion = From cust In customers
Where cust.Region = region
ForEach cust In customersForRegion
Console.WriteLine(cust.CompanyName)
NextEndSub
Ejemplo 2
En el ejemplo siguiente se usan los operadores lógicos And y Or en la cláusula Where.
VB
PrivateSub 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 >= 12And theElement.AtomicNumber < 15) _
Or theElement.Name.EndsWith("r")
OrderBy theElement.Name
ForEach theElement In subset
Console.WriteLine(theElement.Name & " " & theElement.AtomicNumber)
Next' Output:' Aluminum 13' Magnesium 12' Silicon 14' Sulfur 16EndSubPrivateFunction BuildList() As List(Of Element)
ReturnNew 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}}
}
EndFunctionPublicClass Element
PublicProperty Name AsStringPublicProperty AtomicNumber AsIntegerEndClass
Eduki honen iturburua GitHub-en aurki daiteke, bertan arazoak eta aldaketak egiteko eskaerak sortu eta berrikus ditzakezu. Informazio gehiagorako, ikusi gure kolaboratzaileen gida.
.NET oharrak
.NET iturburu irekiko proiektu bat da. Hautatu esteka bat oharrak bidaltzeko:
Bat egin IAren soluzio eskalagarrien soluzioak sortzeko topaketa sortarekin, mundu errealaren erabilera-kasuetan oinarrituak, beste garatzaile eta aditu batzuekin.