Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 3028|Atbildi: 0

[Avots] .NET/C# kolekcija Any() vai Count(), kas ir ātrāka

[Kopēt saiti]
Publicēts 28.06.2023 19:34:31 | | | |
Prasības: Nesen mani kolēģi projekta komandā mainīja datu skaitu () > 0 uz jebkuru (), lai spriestu, vai kolekcijā ir dati (nevis IQueryble vaicājumu datu bāze), un pēc tam jautāja, kāpēc tas tika mainīts (optimizēts), bet atbildes nebija.

Izmantojiet etalonus, lai salīdzinātu, kurš no šiem Any() un Count() ir ātrāks.

Sāksim ar secinājumu (.NET Framwork):Count > Any() > Count().NET 6 Count() un Any() veiktspēja nav daudz atšķirīga, bet tomērAny() ir ieteicams, lai apkopotu, vai ir dati

Testa kods ir šāds:


.NET Framework 4.8.1Etalona dati ir šādi:



.NET 6Etalona dati ir šādi:



Vai jūs to neteicāt .NET Framwork Any() > Count() veiktspējā? Kāpēc Count() ir ātrāks par List? Iemesls ir tāds, ka List pamatā esošā metode Count() izsauc lauku Count, kā parādīts zemāk redzamajā attēlā:




(Beigas)





Iepriekšējo:.NET/C# metodes parametrs NULL null
Nākamo:ASP.NET atšķirība starp ThreadStatic, CallContext un HttpContext
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com