У меня есть два списка таких строк:
var entities= new List<string>(){"101", "102", "103",};
var files= new List<string>(){"101_F05_20101001.csv", "102_F05_20101001.csv", "201_F05_20101001.csv", "202_F05_20101001.csv"};
Я хочу получить результат их пересечения, следуя этой схеме:
ID_F05_YYYYMMDD.csv
ГдеИдентификатор должен соответствовать одному или нескольким элементам в списке объектов.
Я написал следующий код:
var list = files
.Where(x => entities.Any(y => x.Contains(y) && x.Substring(0, y.Length) == y))
.ToList();
Рабочий код здесь .
Но мне интересно, можно ли это улучшить с помощью регулярных выражений, подобных этому:
var regex = new Regex(@"^(\d*)_F05_\d*\.csv$");
Возможно ли это?