У меня есть несколько файлов Excel (.xlsx) в папке и ее подпапках, которые я пытаюсь перечислить на моем веб-сайте. Имена файлов имеют следующий формат:
2018_MyData_Day.xlsx
2018_MyData_Month.xlsx
2018_MyData_Year.xlsx
2019_MyData_Day.xlsx
2019_MyData_Month.xlsx
2019_MyData_Year.xlsx
Примечание: Day
, Month
и Year
- это текст, а не заполнитель для фактического числового дня, месяца или года (в случае, если это вводило в заблуждение).
Мне нужно отобразить эти имена файлов по убыванию имен файлов, но сгруппированных по Year
, Day
или Month
в указанном порядке. Итак, вывод, используя список выше, должен быть:
2019_MyData_Year.xlsx
2018_MyData_Year.xlsx
2019_MyData_Day.xlsx
2018_MyData_Day.xlsx
2019_MyData_Month.xlsx
2018_MyData_Month.xlsx
Я использовал следующее для сортировки имени файла по году и по подстроке Day
, Month
, Year
, но подстрока не упорядочена правильно:
var fileGroup = (
from file in Directory.EnumerateFiles(myPath, searchPattern: "*.xlsx", searchOption: SearchOption.AllDirectories)
let fileName = Path.GetFileName(file)
orderby fileName descending
select fileName
).OrderBy(f => f.Substring(f.LastIndexOf("_")))
Я уверен, что мне нужно условие, так как желаемый заказ является индивидуальным, но я не уверен, как его реализовать.
Возможно ли это вообще или есть лучший способ достичь желаемого результата?
Спасибо!