Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 3028|Răspunde: 0

[Sursă] .NET/C# colecție Any() sau Count(), care este mai rapidă

[Copiază linkul]
Postat pe 28.06.2023 19:34:31 | | | |
Cerințe: Recent, colegii mei din echipa de proiect au schimbat numărul de date() > 0 la Any() pentru a judeca dacă există date în colecție (nu în baza de date de interogări IQueryble), apoi au întrebat de ce s-a schimbat (optimizat), dar nu a primit niciun răspuns.

Folosește benchmark-uri pentru a compara care dintre următoarele Any() și Count() este mai rapid.

Să începem cu concluzia (în .NET Framwork):Count > Any() > Count()În .NET 6, performanțele Count() și Any() nu sunt foarte diferite, dar totușiAny() este recomandat pentru a colecta dacă există date

Codul testului este următorul:


.NET Framework 4.8.1Datele de referință sunt următoarele:



.NET 6Datele de referință sunt următoarele:



Nu ai spus asta în .NET Framwork Any() > Count() performance? De ce este Count() mai rapid decât List? Motivul este că metoda Count() de bază a listei apelează câmpul Count, așa cum se arată în figura de mai jos:




(Sfârșit)





Precedent:Parametrul metodei .NET/C# NULL
Următor:ASP.NET diferența dintre ThreadStatic, CallContext și HttpContext
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com