Gibt es bei der Verwendung ToList()Auswirkungen auf die Leistung, die berücksichtigt werden müssen?
Ich habe eine Abfrage geschrieben, um Dateien aus einem Verzeichnis abzurufen. Dies ist die Abfrage:
string[] imageArray = Directory.GetFiles(directory);
Da ich jedoch List<>stattdessen gerne arbeite , habe ich mich entschlossen, ...
List<string> imageList = Directory.GetFiles(directory).ToList();
Gibt es also Auswirkungen auf die Leistung, die bei der Entscheidung für eine solche Konvertierung berücksichtigt werden sollten - oder nur bei der Verarbeitung einer großen Anzahl von Dateien? Ist das eine vernachlässigbare Umwandlung?
Addoder Remove, würde ich es als IEnumerable<T>(oder noch besser var)
EnumerateFilesstatt GetFiles, so dass nur ein Array erstellt wird.
GetFiles(directory), wie es derzeit in .NET implementiert ist, tut es so ziemlich new List<string>(EnumerateFiles(directory)).ToArray(). So GetFiles(directory).ToList()erstellt eine Liste, erstellt einen Array aus , dass, erstellt dann wieder eine Liste. Wie 2kay sagt, sollten Sie es vorziehen, EnumerateFiles(directory).ToList()hier zu tun .
List<T>für ein ,T[]wenn es der Code logischer / lesbar / verwaltbar macht (es sei denn natürlich die Umwandlung wurde verursacht spürbare Performance - Probleme in diesem Fall ich würde re- besuche es, denke ich).