Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit les insights sur les performances lors de l’utilisation List<T>.Find.
La cause
List<T>.Find la méthode entraîne des performances lentes.
Description de l’insight sur les performances
La List<T>.Find méthode effectue une recherche linéaire dans la liste, ce qui entraîne une complexité temporelle O(n) pour chaque recherche. Cela peut être inefficace lors de la recherche d’éléments fréquemment ou dans de grandes listes.
Si possible, envisagez d’utiliser ou d’utiliser Dictionary<TKey,TValue> un HashSet<T>. Si vous pouvez affecter une clé ou une propriété unique à la valeur, Dictionary<TKey,TValue> vous pouvez l’utiliser. Si vous stockez des valeurs uniques, HashSet<T> vous pouvez l’utiliser. Ces deux structures de données alternatives ont une complexité temporelle O(1) pour chaque recherche par rapport à O(n) dans List<T>.Find.
Comment examiner un avertissement
Dans l’outil Utilisation du processeur, cliquez sur Afficher le code source pour trouver l’emplacement List<T>.Find d’utilisation. Si possible, refactoriser le code pour utiliser une autre structure de données avec des recherches plus rapides.