Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 3028|Répondre: 0

[Source] .NET/C# collection Any() ou Count(), qui est plus rapide

[Copié le lien]
Publié sur 28/06/2023 19:34:31 | | | |
Exigences : Récemment, mes collègues de l’équipe projet ont changé le nombre de données > 0 à Any() pour juger s’il y avait des données dans la collection (pas la base de données de requêtes IQueryble), puis ont demandé pourquoi cela avait été modifié (optimisé), mais il n’y a pas eu de réponse.

Utilisez des benchmarks pour comparer lequel des Any() et Count() suivants est le plus rapide.

Commençons par la conclusion (en .NET Framwork) :Count > Any() > Count()Dans .NET 6, les performances de Count() et Any() ne diffèrent pas beaucoup, mais tout de mêmeAny() est recommandé pour collecter s’il existe des données

Le code de test est le suivant :


.NET Framework 4.8.1Les données de référence sont les suivantes :



.NET 6Les données de référence sont les suivantes :



N’avez-vous pas dit cela dans .NET Framwork Any() > Count() performance ? Pourquoi Compte() est-il plus rapide que Liste ? La raison en est que la méthode sous-jacente Count() de List appelle le champ Count, comme montré dans la figure ci-dessous :




(Fin)





Précédent:Paramètre de méthode .NET/C# NULL null
Prochain:ASP.NET la différence entre ThreadStatic, CallContext et HttpContext
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com