Вы можете поместить Linq Concat
:
using System.Linq;
...
string[] files = Directory.EnumerateFiles(DirPath, Dts.Variables["User::vCSV_Folder_File_Filter_1"].Value.ToString())
.Concat(Directory.EnumerateFiles(DirPath, Dts.Variables["User::vCSV_Folder_File_Filter_2"].Value.ToString()))
.Concat(Directory.EnumerateFiles(DirPath, Dts.Variables["User::vCSV_Folder_File_Filter_3"].Value.ToString()))
.Concat(Directory.EnumerateFiles(DirPath, Dts.Variables["User::vCSV_Folder_File_Filter_4"].Value.ToString()))
.ToArray();
Если у вас есть коллекции folders
и filters
, и вы хотите получить файлы в все folders
с all filters
, вы можете использовать Cartesian Join (который может быть реализован с помощью SelectMany
):
using System.Linq;
...
// I've put arrays here, but any collection
// which implements IEnumerable<string> will do
string[] folders = ...
string[] filters = ...
string[] files = folders
.SelectMany(folder => filters
.SelectMany((filter) => Directory.EnumerateFiles(folder, filter)))
.ToArray();