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!
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