Рассмотрим следующий код
var res = from d in CalEntries
group d by d.date.ToString("MMMM") into grp
orderby grp.Key
select grp;
У меня есть список объектов в CalEntries, где одно свойство-член - date
типа DateTime
. В настоящее время этот код возвращает мне все даты, сгруппированные по имени месяца, однако порядок групп является алфавитным, так что ноябрь должен появиться до октября, например. Как я могу изменить этот запрос, чтобы сохранить группировку по имени месяца, но упорядочить группы в соответствии с хронологическим порядком месяцев?
Это действительно назад для группировки по имени месяца, если вы вообще не заботитесь о названии месяца. Вместо этого, группируйте непосредственно по номеру месяца и сортируйте по нему. Не вычисляйте строки, если родной формат ваших данных более подходит.
group x by x.Month into g
orderby g.Key
select new { MonthName = g.Key.ToString("MMMM"), Items = g.ToList() }
Вы можете попробовать:
orderby d.date.ToString("MM") ascending
Datetime.Month
- это число, поэтому его следует правильно упорядочить.