Condividi tramite


Elenco<T> inefficiente. Trovare l'utilizzo

Questo articolo descrive le informazioni dettagliate sulle prestazioni quando si usa List<T>.Find.

Motivo

List<T>.Find il metodo comporta un rallentamento delle prestazioni.

Descrizione delle informazioni dettagliate sulle prestazioni

Il List<T>.Find metodo esegue una ricerca lineare nell'elenco, con conseguente complessità temporale O(n) per ogni ricerca. Ciò può risultare inefficiente durante la ricerca di elementi frequentemente o in elenchi di grandi dimensioni.

Se possibile, prendere in considerazione l'uso Dictionary<TKey,TValue> di o .HashSet<T> Se è possibile assegnare una chiave o una proprietà univoca al valore, Dictionary<TKey,TValue> è possibile usare . Se si archiviano valori univoci, HashSet<T> è possibile usare . Entrambe queste strutture di dati alternative presentano una complessità temporale O(1) per ogni ricerca rispetto a O(n) in List<T>.Find.

Come analizzare un avviso

Nello strumento Utilizzo CPU fare clic su Visualizza codice sorgente per trovare dove List<T>.Find viene usato. Se possibile, effettuare il refactoring del codice per usare una struttura di dati alternativa con ricerche più veloci.

Vedere anche

Dizionari in .NET