Durante l'utilizzo ToList(), è necessario considerare un impatto sulle prestazioni?
Stavo scrivendo una query per recuperare i file da una directory, che è la query:
string[] imageArray = Directory.GetFiles(directory);
Tuttavia, poiché mi piace lavorare con List<>, invece, ho deciso di inserire ...
List<string> imageList = Directory.GetFiles(directory).ToList();
Quindi, c'è una sorta di impatto sulle prestazioni che dovrebbe essere considerato quando si decide di fare una conversione come questa - o solo da considerare quando si ha a che fare con un numero elevato di file? È una conversione trascurabile?
Addo Remove, lo lascerei come IEnumerable<T>(o anche meglio var)
EnumerateFilesinvece di GetFiles, quindi verrà creato un solo array.
GetFiles(directory), come è attualmente implementato in .NET, praticamente new List<string>(EnumerateFiles(directory)).ToArray(). Quindi GetFiles(directory).ToList()crea un elenco, crea un array da quello, quindi crea nuovamente un elenco. Come dice 2kay, dovresti preferire fare EnumerateFiles(directory).ToList()qui.
List<T>a favore di unT[]se rende il codice più logico / leggibile / mantenibile (a meno che, naturalmente, la conversione è stata causando notevoli problemi di prestazioni nel qual caso avrei ri- visitalo immagino).