Есть 10 файлов в формате xls. Название у них dd.mm.yy. Как отсортировать список files по возрастанию дат? Не совсем понятно как привести имя файла к DateTime и отсортировать их.
var path = @"C:\Users\admin\Desktop\1\DBCommanderNew\bin\Debug";
var files = Directory.GetFiles(
path,"*.xls").Select(x => Path.GetFileNameWithoutExtension(x)).OrderBy(x => x).ToList();
var path = @"C:\Users\admin\Desktop\1\DBCommanderNew\bin\Debug";
var files = Directory
.GetFiles(path,"*.xls")
.Select(x => Path.GetFileNameWithoutExtension(x))
.OrderBy(x =>
{
DateTime date;
return DateTime.TryParseExact(x, "dd.MM.yy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date)
? date
: DateTime.MinValue;
}).ToList();
C# 7:
{
var path = @"C:\Users\admin\Desktop\1\DBCommanderNew\bin\Debug";
var files = Directory.GetFiles(path, "*.xls")
.Select(x => Selector(x))
.OrderBy(x => x.Item2.Date)
.Select(x => x.Item1)
.ToList();
}
private static (string, DateTime) Selector(string input)
{
var file = Path.GetFileNameWithoutExtension(input);
if (DateTime.TryParse(file, out DateTime dateTime))
return (file, dateTime);
return (file, DateTime.MinValue);
}
C# 6:
{
var path = @"C:\Users\admin\Desktop\1\DBCommanderNew\bin\Debug";
var files = Directory.GetFiles(path, "*.xls")
.Select(x => Selector(x))
.OrderBy(x => x.Item2.Date)
.Select(x => x.Item1)
.ToList();
}
private static Tuple<string, DateTime> Selector(string input)
{
var file = Path.GetFileNameWithoutExtension(input);
DateTime dt;
if (DateTime.TryParse(file , out dt))
return Tuple.Create(file, dt);
return Tuple.Create(file, DateTime.MinValue);
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости