Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As operações do Quantifier retornam um Boolean valor que indica se alguns ou todos os elementos em uma sequência satisfazem uma condição.
Importante
Esses exemplos usam uma fonte de System.Collections.Generic.IEnumerable<T> dados. Fontes de dados baseadas em System.Linq.IQueryProvider utilizam fontes de dados System.Linq.IQueryable<T> e árvores de expressão . As árvores de expressão têm limitações na sintaxe C# permitida. Além disso, cada IQueryProvider
fonte de dados, como o EF Core , pode impor mais restrições. Verifique a documentação da sua fonte de dados.
A ilustração a seguir mostra duas operações de quantificador diferentes em duas sequências de origem diferentes. A primeira operação pergunta se algum dos elementos é o caractere 'A'. A segunda operação pergunta se todos os elementos são o caractere 'A'. Ambos os métodos retornam true
neste exemplo.
Nome do método | Descrição | Sintaxe da expressão de consulta C# | Mais informações |
---|---|---|---|
Todos | Determina se todos os elementos de uma sequência satisfazem uma condição. | Não aplicável. | Enumerable.All Queryable.All |
Qualquer | Determina se quaisquer elementos em uma sequência satisfazem uma condição. | Não aplicável. | Enumerable.Any Queryable.Any |
Contém | Determina se uma sequência contém um elemento especificado. | Não aplicável. | Enumerable.Contains Queryable.Contains |
Todos
O exemplo a seguir usa o All
para encontrar alunos que pontuaram acima de 70 em todos os exames.
IEnumerable<string> names = from student in students
where student.Scores.All(score => score > 70)
select $"{student.FirstName} {student.LastName}: {string.Join(", ", student.Scores.Select(s => s.ToString()))}";
foreach (string name in names)
{
Console.WriteLine($"{name}");
}
// This code produces the following output:
//
// Cesar Garcia: 71, 86, 77, 97
// Nancy Engström: 75, 73, 78, 83
// Ifunanya Ugomma: 84, 82, 96, 80
Qualquer
O exemplo a seguir usa o Any
para encontrar alunos que pontuaram mais de 95 em qualquer exame.
IEnumerable<string> names = from student in students
where student.Scores.Any(score => score > 95)
select $"{student.FirstName} {student.LastName}: {student.Scores.Max()}";
foreach (string name in names)
{
Console.WriteLine($"{name}");
}
// This code produces the following output:
//
// Svetlana Omelchenko: 97
// Cesar Garcia: 97
// Debra Garcia: 96
// Ifeanacho Jamuike: 98
// Ifunanya Ugomma: 96
// Michelle Caruana: 97
// Nwanneka Ifeoma: 98
// Martina Mattsson: 96
// Anastasiya Sazonova: 96
// Jesper Jakobsson: 98
// Max Lindgren: 96
Contém
O exemplo a seguir usa o Contains
para encontrar alunos que pontuaram exatamente 95 em um exame.
IEnumerable<string> names = from student in students
where student.Scores.Contains(95)
select $"{student.FirstName} {student.LastName}: {string.Join(", ", student.Scores.Select(s => s.ToString()))}";
foreach (string name in names)
{
Console.WriteLine($"{name}");
}
// This code produces the following output:
//
// Claire O'Donnell: 56, 78, 95, 95
// Donald Urquhart: 92, 90, 95, 57