Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 3028|Risposta: 0

[Fonte] .NET/C# raccolta Any() o Count(), che è più veloce

[Copiato link]
Pubblicato su 28/06/2023 19:34:31 | | | |
Requisiti: Recentemente, i miei colleghi del team di progetto hanno cambiato il conteggio dei dati() > 0 in Any() per giudicare se ci fossero dati nella collezione (non il database di query IQueryble), e poi hanno chiesto perché fosse stato modificato (ottimizzato), ma non ha ricevuto risposta.

Usa benchmark per confrontare quale dei seguenti Any() e Count() è più veloce.

Iniziamo con la conclusione (in .NET Framwork):Conteggio > Qualsiasi() > Conte()In .NET 6, le prestazioni di Count() e Any() non sono molto diverse, ma comunqueAny() è raccomandato per raccogliere se ci sono dati

Il codice di prova è il seguente:


.NET Framework 4.8.1I dati di riferimento sono i seguenti:



.NET 6I dati di riferimento sono i seguenti:



Non l'avevi detto in .NET Framwork Any() > Count() performance? Perché Count() è più veloce di List? Il motivo è che il metodo sottostante Count() di List chiama il campo Count, come mostrato nella figura sottostante:




(Fine)





Precedente:.NET/C# parametro metodo NULL null
Prossimo:ASP.NET la differenza tra ThreadStatic, CallContext e HttpContext
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com