Count vs Any quando é melhor usar cada um ?

Marcio Nizzola
2 min read3 days ago

--

Count vs Any quando é melhor usar cada um ?

Primeira coisa que temos que ter em mente é que existe o método “Count” e a propriedade “Count” ! Mas qual a diferença, se for a propriedade utilizamos “objeto.Count”, já se for o método, utilizamos “objeto.Count()” !

Sabemos que a partir da versão .NET Core, o código do .NET foi reescrito e muita coisa tem performance diferente !

No .Net Framework

Se utilizamos ICollection:

  • .Count > 0 é melhor
  • .Count() > 0 é bom, mas realiza a chamada para .Count
  • .Any() será mais lento, por que buscará um item na coleção

No .Net Core ou superior

  • .Count >0 é melhor, se estiver disponível no objeto que você instanciou.
  • .Any() é bom, mas também realizada a chamada para .Count > 0 ou busca um item na lista caso você utilize um parâmetro de busca.
  • .Count() > 0 é ruim pois fará uma contagem completa na lista

Para validar o conceito, fiz um projeto para rodar um bechmark e identificar qual o método mais performático no .NET Core, e podemos ver que “UsingCount” que foi o método que utiliza a propriedade, é muito mais rápido!

benchmarks do caso de uso do count vs any no c#

O Código segue abaixo, foram feitas interações em listas com 100, 1000 e 10.000 itens, verificamos que a propriedade Count saiu-se melhor em todos os testes.

[Benchmark]
public bool UsingCount()
{
return list.Count > 0;
}

[Benchmark]
public bool UsingCountMethod()
{
return list.Count() > 0;
}

[Benchmark]
public bool UsingAny()
{
return list.Any();
}

Gostou do artigo? clique no ícone👏e me siga para ver as próximas publicações !! Quer ver mais conteúdos, acesse minhas redes através do Linktree: https://linktree.com/nizzola

--

--

Marcio Nizzola

Microsoft MVP | Software Architect na CI&T | Prof. da Etec Itu | Membro Fundador da Comunidade Itu Developers.