Cuando se usa ToList(), ¿hay un impacto en el rendimiento que deba considerarse?
Estaba escribiendo una consulta para recuperar archivos de un directorio, que es la consulta:
string[] imageArray = Directory.GetFiles(directory);
Sin embargo, como me gusta trabajar con él List<>, decidí poner ...
List<string> imageList = Directory.GetFiles(directory).ToList();
Entonces, ¿hay algún tipo de impacto en el rendimiento que deba tenerse en cuenta al decidir hacer una conversión como esta, o que solo se tenga en cuenta al tratar con una gran cantidad de archivos? ¿Es esta una conversión insignificante?
Addo Remove, lo dejaría como IEnumerable<T>(o incluso mejor var)
EnumerateFileslugar de GetFiles, por lo que solo se creará una matriz.
GetFiles(directory), como se implementa actualmente en .NET, prácticamente lo hace new List<string>(EnumerateFiles(directory)).ToArray(). Entonces GetFiles(directory).ToList()crea una lista, crea una matriz a partir de eso, luego crea una lista nuevamente. Como dice 2kay, deberías preferir hacer EnumerateFiles(directory).ToList()aquí.
List<T>a favor de unaT[]si se hace que el código sea más lógico / lectura / mantenible (a menos que, por supuesto, la conversión fue causando notables problemas de rendimiento en cuyo caso me re- visitarlo, supongo).