Operações de quantificador em LINQ
Esses operadores retornam um valor booleano, ou seja, True ou False quando alguns ou todos os elementos de uma sequência satisfazem uma condição específica.
Operador | Descrição | Sintaxe de expressão de consulta C # | Sintaxe de expressão de consulta VB |
---|---|---|---|
Todos | Retorna um valor 'True' se todos os elementos de uma sequência satisfizerem uma condição de predicado | Não aplicável | Agregar ... em ... em todos (...) |
Qualquer | Determina, pesquisando uma sequência, se algum elemento da mesma satisfaz uma condição especificada | Não aplicável | Agregar… em… em qualquer () |
Contém | Retorna um valor 'Verdadeiro' se achar que um elemento específico está lá em uma sequência se a sequência não contiver esse elemento específico, o valor 'falso' é retornado | Não aplicável | Não aplicável |
Exemplo de método de extensão All - All (Of TSource)
VB
Module Module1
Sub Main()
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}}
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
For Each e In query
Console.WriteLine("Name = {0}", e)
Next
Console.WriteLine(vbLf & "Press any key to continue.")
Console.ReadKey()
End Sub
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
End Module
Quando o código acima em VB é compilado e executado, ele produz o seguinte resultado -
Arlene
Rui
Press any key to continue.
Exemplo de qualquer um - método de extensão
VB
Module Module1
Sub Main()
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}}
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
For Each e In query
Console.WriteLine("Name = {0}", e)
Next
Console.WriteLine(vbLf & "Press any key to continue.")
Console.ReadKey()
End Sub
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
End Module
Quando o código acima em VB é compilado e executado, ele produz o seguinte resultado -
Rui
Press any key to continue.