Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 3028|Resposta: 0

[Fonte] .NET/C# coleção Any() ou Count(), que é mais rápida

[Copiar link]
Publicado em 28/06/2023 19:34:31 | | | |
Requisitos: Recentemente, meus colegas da equipe do projeto mudaram a contagem de dados() > 0 para Any() para avaliar se há dados na coleta (não o banco de dados de consultas IQueryble), e depois perguntaram por que isso foi alterado (otimizado), mas não houve resposta.

Use benchmarks para comparar qual dos seguintes Any() e Count() é mais rápido.

Vamos começar pela conclusão (em .NET Framwork):Conde > Qualquer() > Conde()No .NET 6, o desempenho de Count() e Any() não é muito diferente, mas ainda assimAny() é recomendado para coletar se há dados

O código do teste é o seguinte:


.NET Framework 4.8.1Os dados do benchmark são os seguintes:



.NET 6Os dados do benchmark são os seguintes:



Você não disse isso no .NET Framwork Any() > Count() performance? Por que o Count() é mais rápido que o List? A razão é que o método subjacente Count() do List chama o campo Count, como mostrado na figura abaixo:




(Fim)





Anterior:.NET/C# parâmetro do método NULL
Próximo:ASP.NET a diferença entre ThreadStatic, CallContext e HttpContext
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com