LINQ Qualquer

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 truese 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 tipo IEnumerable<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 > 5testa cada número na matriz de números. Se um elemento for maior que 5, o Any()método retorna truee 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 60KLinguagem de código:  JavaScript  ( javascript )

Neste exemplo, a expressão lambda e => e.Salary > 60000se aplica a cada Employeeobjeto e retorna truese o valor da Salarypropriedade 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *