Operazioni di quantificatore (Visual Basic)
Le operazioni del quantificatore restituiscono un valore Boolean, che indica se alcuni o tutti gli elementi di una sequenza soddisfano una condizione.
La figura seguente illustra due diverse operazioni del quantificatore in due diverse sequenze di origine. La prima operazione chiede se uno degli elementi è il carattere “A”. La seconda operazione chiede se tutti gli elementi sono il carattere "A". Entrambi i metodi restituiscono true
in questo esempio.
La sezione seguente elenca i metodi dell'operatore query standard che eseguono operazioni del quantificatore.
Metodi
Nome metodo | Descrizione | Sintassi delle espressioni di query di Visual Basic | Ulteriori informazioni |
---|---|---|---|
Tutte le date | Determina se tutti gli elementi di una sequenza soddisfano una condizione. | Aggregate … In … Into All(…) |
Enumerable.All Queryable.All |
Any | Determina se alcuni elementi di una sequenza soddisfano una condizione. | Aggregate … In … Into Any() |
Enumerable.Any Queryable.Any |
Contiene | Determina se una sequenza contiene un elemento specifico. | Non applicabile. | Enumerable.Contains Queryable.Contains |
Esempi di sintassi delle espressioni di query
Questi esempi usano la clausola Aggregate
in Visual Basic come parte della condizione di filtro in una query LINQ.
Nell'esempio seguente vengono utilizzati la clausola Aggregate
e il metodo di estensione All per restituire da una raccolta le persone i cui animali domestici sono tutti più vecchi di un'età specificata.
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
Nell'esempio seguente vengono utilizzati la clausola Aggregate
e il metodo di estensione Any per restituire da una raccolta le persone che hanno almeno un animale domestico più vecchio di un'età specificata.
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