Resumo : neste tutorial, você aprenderá como usar o Any()
método LINQ para determinar se uma sequência contém algum elemento ou se algum elemento em uma sequência satisfaz uma condição especificada.
Introdução ao método LINQ Any()
O Any()
é um método de extensão em LINQ que retorna true
se uma sequência contém algum elemento ou se a sequência contém qualquer elemento que satisfaça uma condição especificada. Caso contrário, ele retorna false
.
bool Any<TSource> (
this IEnumerable<TSource> source,
Func<TSource,bool> predicate
);
Linguagem de código: C# ( cs )
Nesta sintaxe:
source
é uma sequência de entrada com o tipoIEnumerable<T>
.predicate
é uma função que retorna verdadeiro se cada elemento satisfizer uma condição.
Exemplos de LINQ Any()
Vejamos alguns exemplos de uso do Any()
método.
1) Usando o método LINQ Any() para verificar se uma sequência possui algum elemento
O exemplo a seguir demonstra como usar o Any()
método LINQ para verificar se uma sequência possui algum elemento:
using static System.Console;
int[] numbers = { 5, 7, 2, 1, 0 };
bool hasNumber = numbers.Any();
if (hasNumber)
{
WriteLine("The numbers has element(s).");
}
Linguagem de código: C# ( cs )
Saída:
The numbers has an element.
Linguagem de código: C# ( cs )
Como funciona.
Primeiro, defina uma matriz de cinco números:
int[] numbers = { 5, 7, 2, 1, 0 };
Linguagem de código: C# ( cs )
Segundo, use o Any()
método para verificar se a matriz de números contém algum elemento:
bool hasNumber = numbers.Any();
Linguagem de código: C# ( cs )
Terceiro, verifique o valor de retorno do Any()
método e escreva uma mensagem no console se for verdade:
if (hasNumber)
{
WriteLine("The numbers has element(s).");
}
Linguagem de código: C# ( cs )
2) Usando o método LINQ Any() para verificar se algum elemento de uma sequência satisfaz uma condição
O exemplo a seguir demonstra como usar o Any()
método LINQ para verificar se uma sequência possui pelo menos um elemento que satisfaz uma condição:
using static System.Console;
int[] numbers = { 5, 7, 2, 8, 0 };
bool hasNumberGreaterThanFive = numbers.Any(n => n > 5);
if (hasNumberGreaterThanFive)
{
WriteLine("The sequence contains at least a number greater than 5");
}
Linguagem de código: C# ( cs )
Neste exemplo, a expressão lambda n => n > 5
testa cada número na matriz de números. Se um elemento for maior que 5, o Any()
método retorna true
e para de avaliar os elementos restantes do array.
3) Usando o método LINQ Any() com uma sequência de objetos
O programa a seguir demonstra como utilizar o método Any() para verificar se existe algum funcionário com salário superior a 60K:
using static System.Console;
namespace LINQDemo
{
class Employee
{
public string? Name { get; set; }
public string? Department { get; set; }
public int Salary { get; set; }
}
class Program
{
public static void Main()
{
var employees = new List<Employee>() {
new() { Name = "John", Department = "HR", Salary = 50000 },
new() { Name = "Jane", Department = "IT", Salary = 60000 },
new() { Name = "Bob", Department = "HR", Salary = 45000 },
new() { Name = "Sara", Department = "IT", Salary = 55000 },
new() { Name = "Tom", Department = "IT", Salary = 65000 }
};
var salaryGt60K = employees.Any(e => e.Salary > 60000);
if (salaryGt60K)
{
WriteLine("At least one employee with salary higher than 60K");
}
}
}
}
Linguagem de código: C# ( cs )
Saída:
At least one employee with salary higher than 60K
Linguagem de código: JavaScript ( javascript )
Neste exemplo, a expressão lambda e => e.Salary > 60000
se aplica a cada Employee
objeto e retorna true
se o valor da Salary
propriedade for maior que 60000
.
Resumo
- Use o método LINQ
Any()
para determinar se uma sequência contém algum elemento ou se algum elemento em uma sequência satisfaz uma condição especificada.