Czy podczas używania ToList()istnieje wpływ na wydajność, który należy wziąć pod uwagę?
Pisałem zapytanie o pobranie plików z katalogu, którym jest zapytanie:
string[] imageArray = Directory.GetFiles(directory);
Ponieważ jednak lubię z nim pracować List<>, zdecydowałem się na ...
List<string> imageList = Directory.GetFiles(directory).ToList();
Czy jest więc jakiś wpływ na wydajność, który należy wziąć pod uwagę, decydując się na taką konwersję - czy tylko w przypadku dużej liczby plików? Czy jest to pomijalna konwersja?
Addlub Removezostawiłbym to jako IEnumerable<T>(lub nawet lepiej var)
EnumerateFileszamiast GetFiles, aby powstała tylko jedna tablica.
GetFiles(directory), jak to jest obecnie zaimplementowane w .NET, prawie tak new List<string>(EnumerateFiles(directory)).ToArray(). GetFiles(directory).ToList()Tworzy więc listę, tworzy z niej tablicę, a następnie ponownie tworzy listę. Jak mówi 2kay, powinieneś wolał robić EnumerateFiles(directory).ToList()tutaj.
List<T>opowiada się zaT[], czy to sprawia, że kod jest bardziej logiczny / odczytu / utrzymaniu (o ile oczywiście konwersji została powodując zauważalne problemy z wydajnością w takim przypadku będę re- odwiedź to chyba).