Чи використовується під час використання ToList()
вплив на продуктивність, який потрібно враховувати?
Я писав запит на отримання файлів із каталогу, який є запитом:
string[] imageArray = Directory.GetFiles(directory);
Однак, оскільки List<>
замість цього мені подобається працювати , я вирішив поставитись на ...
List<string> imageList = Directory.GetFiles(directory).ToList();
Отже, чи є якийсь вплив на продуктивність, який слід враховувати, приймаючи рішення про подібне перетворення - або лише його враховувати при роботі з великою кількістю файлів? Це незначне перетворення?
Add
або Remove
, я б залишив це IEnumerable<T>
(або ще краще var
)
EnumerateFiles
замість GetFiles
, тому буде створений лише один масив.
GetFiles(directory)
, як це реалізовано в .NET в даний час, в значній мірі new List<string>(EnumerateFiles(directory)).ToArray()
. Так GetFiles(directory).ToList()
створюється список, створюється масив з цього, потім знову створюється список. Як каже 2kay, вам слід віддати перевагу EnumerateFiles(directory).ToList()
тут.
List<T>
на користь системи ,T[]
якщо це робить код більш логічним / читаним / ремонтопрігоден (якщо, звичайно , перетворення НЕ викликають помітні проблеми з продуктивністю , в цьому випадку я б переустановлення відвідайте його я здогадуюсь)