Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las operaciones cuantificadores devuelven un Boolean valor que indica si algunos o todos los elementos de una secuencia cumplen una condición.
En la ilustración siguiente se muestran dos operaciones cuantificadores diferentes en dos secuencias de origen diferentes. La primera operación pregunta si alguno de los elementos es el carácter "A". La segunda operación pregunta si todos los elementos son el carácter "A". Ambos métodos devuelven true en este ejemplo.
Los métodos del operador de consulta estándar que realizan operaciones cuantificadora se enumeran en la sección siguiente.
Métodos
| Nombre del método | Descripción | Sintaxis de expresión de consulta de Visual Basic | Más información |
|---|---|---|---|
| Todos | Determina si todos los elementos de una secuencia cumplen una condición. | Aggregate … In … Into All(…) |
Enumerable.All Queryable.All |
| Cualquiera | Determina si los elementos de una secuencia cumplen una condición. | Aggregate … In … Into Any() |
Enumerable.Any Queryable.Any |
| Contiene | Determina si una secuencia contiene un elemento especificado. | No aplicable. | Enumerable.Contains Queryable.Contains |
Ejemplos de sintaxis de expresiones de consulta
En estos ejemplos se usa la Aggregate cláusula en Visual Basic como parte de la condición de filtrado en una consulta LINQ.
En el ejemplo siguiente se usa la Aggregate cláusula y el All método de extensión para devolver de una colección aquellas personas cuyas mascotas tengan una edad superior a la especificada.
Class Person
Public Property Name As String
Public Property Pets As Pet()
End Class
Class Pet
Public Property Name As String
Public Property Age As Integer
End Class
Sub All()
Dim barley As New Pet With {.Name = "Barley", .Age = 4}
Dim boots As New Pet With {.Name = "Boots", .Age = 1}
Dim whiskers As New Pet With {.Name = "Whiskers", .Age = 6}
Dim bluemoon As New Pet With {.Name = "Blue Moon", .Age = 9}
Dim daisy As New Pet With {.Name = "Daisy", .Age = 3}
Dim charlotte As New Person With {.Name = "Charlotte", .Pets = New Pet() {barley, boots}}
Dim arlene As New Person With {.Name = "Arlene", .Pets = New Pet() {whiskers}}
Dim rui As New Person With {.Name = "Rui", .Pets = New Pet() {bluemoon, daisy}}
' Create the list of Person objects that will be queried.
Dim people As New System.Collections.Generic.List(Of Person)(New Person() {charlotte, arlene, rui})
Dim query = From pers In people
Where (Aggregate pt In pers.Pets Into All(pt.Age > 2))
Select pers.Name
Dim sb As New System.Text.StringBuilder()
For Each name As String In query
sb.AppendLine(name)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' Arlene
' Rui
End Sub
En el ejemplo siguiente se usa la Aggregate cláusula y el Any método de extensión para devolver de una colección a aquellas personas que tienen al menos una mascota mayor que una edad especificada.
Class Person
Public Property Name As String
Public Property Pets As Pet()
End Class
Class Pet
Public Property Name As String
Public Property Age As Integer
End Class
Sub Any()
Dim barley As New Pet With {.Name = "Barley", .Age = 4}
Dim boots As New Pet With {.Name = "Boots", .Age = 1}
Dim whiskers As New Pet With {.Name = "Whiskers", .Age = 6}
Dim bluemoon As New Pet With {.Name = "Blue Moon", .Age = 9}
Dim daisy As New Pet With {.Name = "Daisy", .Age = 3}
Dim charlotte As New Person With {.Name = "Charlotte", .Pets = New Pet() {barley, boots}}
Dim arlene As New Person With {.Name = "Arlene", .Pets = New Pet() {whiskers}}
Dim rui As New Person With {.Name = "Rui", .Pets = New Pet() {bluemoon, daisy}}
' Create the list of Person objects that will be queried.
Dim people As New System.Collections.Generic.List(Of Person)(New Person() {charlotte, arlene, rui})
Dim query = From pers In people
Where (Aggregate pt In pers.Pets Into Any(pt.Age > 7))
Select pers.Name
Dim sb As New System.Text.StringBuilder()
For Each name As String In query
sb.AppendLine(name)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' Rui
End Sub
Consulte también
- System.Linq
- Información General sobre los Operadores de Consulta Estándar (Visual Basic)
- Cláusula Aggregate
- Procedimiento para consultar oraciones que contienen un conjunto especificado de palabras (LINQ) (Visual Basic)