Article image
Emmanuel Bento
Emmanuel Bento15/01/2024 17:40
Compartilhe

Você sabe a diferença do Any(), Contains() e Exists()?

  • #.NET
  • #.NET C#

Any()

 - Método de extensão do namespace System.Linq.

 - Introduzido com o .NET Framework 3.5.

 - Funciona com qualquer coleção enumerável.

 - Pode receber Func<T, bool> como parâmetro (equivalente a Predicate<T>).

 - Possui uma versão sem parâmetros que verifica se a coleção contém algum elemento (Count > 0).

 - Exemplo de uso:   

bool existe = lista.Any(x => x == 2 || x == 3);

 

Contains()

 - Método padrão de List<T>.

 - Recebe um elemento (T) como parâmetro.

 - Exemplo de uso: 

bool existe = lista.Contains(1);

Exists()

 - Método padrão de List<T>.

 - Recebe um Predicate<T> como parâmetro.

 - Útil para realizar múltiplas validações.

 - Evita a necessidade de várias chamadas de Contains().

 - Exemplo de uso:  

bool exists = lista.Exists(x => x == 1 || x == 3);

  

Observações Gerais

 - Any() e Contains()

  - Funcionam com qualquer coleção enumerável.

  - Ambos são métodos de verificação de existência de elementos.

 - Exists()

  - Específico para List<T>.

  - Aceita Predicate<T> para realizar validações complexas.

 -Diferenças nos Parâmetros

  - Any(): Func<T, bool> (ou Predicate<T>).

  - Contains(): Elemento (T).

  - Exists(): Predicate<T>.

Compartilhe
Comentários (2)
Lucas Moretti
Lucas Moretti - 15/01/2024 21:03

Acabei sem querer down-vote.

Ótimo artigo mano, fico bem claro

Lucas Martins
Lucas Martins - 15/01/2024 19:33

Otimo artigo.