Udostępnij przez


Nieefektywna lista<T>. Znajdowanie użycia

W tym artykule opisano szczegółowe informacje o wydajności podczas korzystania z usługi List<T>.Find.

Przyczyna

List<T>.Find metoda powoduje niską wydajność.

Opis szczegółowych informacji o wydajności

Metoda List<T>.Find wykonuje wyszukiwanie liniowe na liście, co powoduje złożoność czasu O(n) dla każdego wyszukiwania. Może to być nieefektywne podczas wyszukiwania elementów często lub na dużych listach.

Jeśli to możliwe, rozważ użycie elementu Dictionary<TKey,TValue> lub .HashSet<T> Jeśli możesz przypisać klucz lub unikatową właściwość do wartości, Dictionary<TKey,TValue> można jej użyć. Jeśli przechowujesz unikatowe wartości, HashSet<T> można go użyć. Obie te alternatywne struktury danych mają złożoność czasu O(1) dla każdego wyszukiwania w porównaniu z O(n) w systemie List<T>.Find.

Jak zbadać ostrzeżenie

W narzędziu Użycie procesora CPU kliknij pozycję Wyświetl kod źródłowy , aby znaleźć miejsce List<T>.Find użycia. Jeśli to możliwe, refaktoryzuje kod, aby użyć alternatywnej struktury danych z szybszymi wyszukiwaniami.

Zobacz także

Słowniki na platformie .NET