Partager via


Traversée LinkedList inefficace

Cet article décrit les insights sur les performances lors de la traversée des LinkedList<T> collections.

La cause

La traversée d’un LinkedList<T> élément pour trouver des éléments entraîne des performances lentes.

Description de l’insight sur les performances

LinkedList<T> ne fournit pas l’accès O(1) aux éléments par index. Chaque traversée de la liste, en particulier dans les boucles ou boucles imbriquées, entraîne la complexité temporelle O(n). Cela peut entraîner une dégradation significative des performances lors de la recherche d’éléments fréquemment ou dans de grandes listes liées.

Si possible, envisagez d’utiliser List<T> ou Dictionary<TKey,TValue>. List<T> fournit un accès O(1) par index et Dictionary<TKey, TValue> fournit des recherches O(1) par clé. Ces alternatives sont souvent plus efficaces pour la plupart des modèles d’accès que pour parcourir une liste liée.

Comment examiner un avertissement

Dans l’outil Utilisation du processeur, cliquez sur Afficher le code source pour trouver l’emplacement où LinkedList<T> la traversée est utilisée. Si possible, refactoriser l’utilisation d’un type de collection différent qui fournit un accès plus rapide pour votre scénario.

Voir aussi

Collections et structures de données