Operace kvantifikátoru
Kvantifikátor operace vracejí Boolean hodnotu označující, zda některé nebo všechny prvky v posloupnosti splňovat podmínku.
Následující obrázek znázorňuje dvě různé kvantifikátor operace na dvou různých zdrojových sekvence.První operace, požádá-li jeden nebo více prvků jsou znak "A" a výsledkem je true.Druhá operace zobrazí dotaz, pokud jsou všechny prvky znak "A" a výsledek je true.
V následující části jsou uvedeny metody operátor standardního dotazu, které provádějí operace kvantifikátor.
Metody
Název metody |
Description |
Syntaxi výrazu dotazu C# |
Visual BasicSyntaxe dotazu výraz |
Další informace |
---|---|---|---|---|
Všechna |
Určuje, zda jsou všechny prvky v pořadí splňují podmínku. |
Nelze použít |
Aggregate … In … Into All(…) |
|
Žádné |
Určuje, zda všechny prvky v posloupnosti splňovat podmínku. |
Nelze použít |
Aggregate … In … Into Any() |
|
Obsahuje |
Určuje, zda je posloupnost obsahuje zadaný prvek. |
Nelze použít |
Nelze použít |
Příklady syntaxe výraz dotazu
Tyto příklady použití Aggregate v klauzuli Visual Basic jako součást podmínku filtrování LINQ dotazu.
V následujícím příkladu Aggregate klauzule a All``1 metoda rozšíření z kolekce vrátit tyto osoby, jejichž domácí zvířata jsou všechny starší než zadaný věku.
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
V dalším příkladu Aggregate klauzule a Any``1 metoda rozšíření vrátit z kolekce domácími uživatelé, kteří mají alespoň jednu, která je starší než zadaný věku.
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
Viz také
Úkoly
Postupy: Dynamické určování filtrů predikátů při běhu (Průvodce programováním v C#)
Postupy: Vytvoření dotazu na věty obsahující zadanou množinu slov (LINQ)
Referenční dokumentace
Aggregate – klauzule (Visual Basic)