Ваш основной инструмент - метод .Select ().
string[] paths = getPaths();
var fileNames = paths.Select(p => Path.GetFileName(p));
имеет ли значение, если здесь массив или список?
Нет, массив также реализует IEnumerable<T>
Обратите внимание, что этот минимальный подход включает отложенное выполнение , что означает, что fileNames
является IEnumerable<string>
и начинается итерация по исходному массиву только тогда, когда вы получаете элементы из него.
Если вы хотите, чтобы список (был безопасным), используйте
string[] paths = getPaths();
var fileNames = paths.Select(p => Path.GetFileName(p)).ToList();
Но когда есть много файлов, вы можете пойти в обратном направлении (получить результаты с чередованием, быстрее)также используется отложенное выполнение источник:
var filePaths = Directory.EnumerateFiles(...); // requires Fx4
var fileNames = filePaths.Select(p => Path.GetFileName(p));
Это зависит от того, что вы хотите сделать дальше с fileNames
.