Požiadavky: Nedávno moji kolegovia z projektového tímu zmenili počet dát() > 0 na Any(), aby posúdili, či sú dáta v kolekcii (nie v databáze IQueryble), a potom sa pýtali, prečo sa to zmenilo (optimalizovalo), ale odpoveď neprišla.
Použite benchmarky na porovnanie, ktorý z nasledujúcich Any() a Count() je rýchlejší.
Začnime záverom (v .NET Framwork):Count > Any() > Count()V .NET 6 sa výkon Count() a Any() veľmi nelíšia, ale aj takAny() sa odporúča na zhromažďovanie údajov, či existujú údaje。
Testovací kód je nasledovný:
.NET Framework 4.8.1Referenčné údaje sú nasledovné:
.NET 6Referenčné údaje sú nasledovné:
Nepovedal si, že v .NET Framwork Any() > Count() výkon? Prečo je Count() rýchlejší ako List? Dôvodom je, že základná metóda Count() v Zozname volá pole Count, ako je znázornené na obrázku nižšie:
(Koniec)
|