C# – Procurando um elemento dentro de uma collection com o método Any1 min read

Categoria: C#

Olá pessoal! Hoje vou comentar a respeito do método .Any() da namespace System.Linq. Mas, afinal, para que serve esse método Any()? Digamos que você precisa encontrar algo dentro de uma collection… Você logo pensa: vou fazer um loop e pesquisar o que estou encontrando! Certo! Mas, se eu lhe disser que em .NET, com C#, existe uma maneira mais simples de fazer e com menos código… Vamos ver como isso funciona!

Um pequeno exemplo: pesquisando ocorrências de números em Collection

Vamos imaginar que você deseja saber se determinado número existe em uma coleção de itens do tipo int. Veja como você pode pesquisar de forma simples com o método .Any():

using System;
using System.Collections.Generic;
using System.Linq;

namespace MetodoAnyConsole
{
    class Program
    {
        static void Main(string[] args)
        {

            ICollection<int> num = new List<int>()
            {
                10, 20, 30, 40, 50, 60, 70, 80, 90, 100
            };
            bool existe = false;
            string numero = Console.ReadLine();

            /* Método .Any() em ação! */
            existe = num.Any(n => n == Convert.ToInt32(numero));
            if (existe)
            {
                Console.WriteLine("Existe este número na lista");
                Console.ReadKey();
            }

            Console.WriteLine("Não existe este número na lista");
            Console.ReadKey();
        }
    }
}

Neste exemplo, é criada uma lista com 10 números inteiros e desejamos saber se o número digitado existe na lista. Observe que para fazer a procura por strings, o procedimento é mesmo! Um curiosidade: internamente o método .Any() faz um loop em busca do item. Quando encontra a ocorrência do item, retorna true caso contrário retorna false.

Concluímos que o uso do método .Any() é um recurso muito útil para tornar o código mais legível e aumentar a produtividade quando se trabalha com listas.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *