Operacje kwantyfikatora
Kwantyfikator operacji zwraca Boolean wartość, która wskazuje, czy niektóre lub wszystkie elementy w kolejności od spełnienia warunku.
Następująca ilustracja przedstawia dwie operacje różnych kwantyfikator na dwa różne źródła sekwencji.Pierwsza operacja zwraca się, jeśli jeden lub więcej elementów jest znak "A", a wynik jest true.Druga operacja zwraca się, jeśli wszystkie elementy są znak "A", a wynik jest true.
Kwerendy standardowe metody operatora, wykonujących operacje kwantyfikator są wymienione w poniższej sekcji.
Metody
Nazwa metody |
Opis |
Kwerendy języka C# składni wyrażenia |
Visual BasicSkładni wyrażenia kwerendy |
Więcej informacji |
---|---|---|---|---|
Wszystkie |
Określa, czy wszystkie elementy w kolejności od spełnienia warunku. |
Nie dotyczy. |
Aggregate … In … Into All(…) |
|
Wszelkie |
Określa, czy wszystkie elementy w sekwencji spełniają warunek. |
Nie dotyczy. |
Aggregate … In … Into Any() |
|
Zawiera |
Określa, czy sekwencja zawiera określony element. |
Nie dotyczy. |
Nie dotyczy. |
Przykłady składni wyrażenia kwerendy
W tych przykładach korzysta Aggregate w klauzuli Visual Basic jako część warunek filtrowania w kwerendzie LINQ.
W poniższym przykładzie użyto Aggregate klauzuli i All``1 metodę rozszerzenia do zwrotu ze zbioru tych osób, w których zwierzęta są wszystkie starsze niż określony wiek.
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
W następnym przykładzie użyto Aggregate klauzuli i Any``1 metodę rozszerzenia do zwrotu ze zbioru tych ludzi, którzy mają co najmniej jedno pet, który jest starsza niż określony wiek.
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
Zobacz też
Zadania
Porady: zapytanie o zdania zawierające określony zestaw wyrazów (LINQ)
Informacje
Aggregate — Klauzula (Visual Basic)