Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.