вторник, 4 марта 2014 г.

Получение списка файлов в директории LINQ-style

Небольшой хак, смысл которого, разве что, в красоте кода, ну и небольшом удобстве и совсем незначительной экономии памяти. Например, нам нужно получить имена всех текстовых файлов в какой-то директории. Олдскульный способ сделать это примерно такой:

DirectoryInfo di = new DirectoryInfo(folderPath);

            List filenames;
            FileInfo[] allFiles = di.GetFiles("*.txt");
            foreach (FileInfo singleFile in allFiles)
            {
                filenames.Add(singleFile.Name);
            }

А так как DirectoryInfo.GetFiles возвращает массив, то мы можем использовать функцию IEnumerable.Select. Примерно так:

DirectoryInfo di = new DirectoryInfo(folderPath);

// Получаем список .TXT файлов
List filenames = di.GetFiles("*.txt")
                        .Select(file => file.Name).ToList();

Комментариев нет:

Отправить комментарий