Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les opérations de quantificateur retournent une Boolean valeur qui indique si certains ou tous les éléments d’une séquence répondent à une condition.
L’illustration suivante illustre deux opérations de quantificateur différentes sur deux séquences sources différentes. La première opération demande si l’un des éléments est le caractère « A ». La deuxième opération demande si tous les éléments sont le caractère « A ». Les deux méthodes retournent true
dans cet exemple.
Les méthodes d’opérateur de requête standard qui effectuent des opérations quantificateurs sont répertoriées dans la section suivante.
Méthodes
Nom de la méthode | Descriptif | Syntaxe de l’expression de requête Visual Basic | Plus d’informations |
---|---|---|---|
Tous | Détermine si tous les éléments d’une séquence répondent à une condition. | Aggregate … In … Into All(…) |
Enumerable.All Queryable.All |
N'importe lequel | Détermine si des éléments d’une séquence répondent à une condition. | Aggregate … In … Into Any() |
Enumerable.Any Queryable.Any |
Contient | Détermine si une séquence contient un élément spécifié. | Non applicable. | Enumerable.Contains Queryable.Contains |
Exemples de syntaxe d’expression de requête
Ces exemples utilisent la Aggregate
clause dans Visual Basic dans le cadre de la condition de filtrage dans une requête LINQ.
L’exemple suivant utilise la clause Aggregate
et la méthode d’extension All pour extraire d’une collection les personnes dont les animaux sont tous plus âgés qu’un âge spécifié.
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
L’exemple suivant utilise la clause Aggregate
et la méthode d'extension Any pour obtenir d'une collection les personnes qui ont au moins un animal de compagnie plus âgé qu’un âge spécifié.
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