2015-08-22 4 views
0

У меня есть список и элемент, содержащий одно свойство, созданное, которое является DateTime.C# список <item> группа по годам по месяцам

Как я могу группировать предметы по году, а затем по месяцам в порядке убывания, как это?

2015 
    August 
    July 
    June 
    May 
    April 
    March 
    February 
    January 
2014 
    December 
    November 
    October 
........ 

Вот мой подход:

var grouped = myList.GroupBy(t => t.Created.Year).Select(t => new { Year = t.Key, Months = t.GroupBy(x => x.Created.Month) }); 
+0

Put '.ThenBy (т => т. Created.Month) 'после' GroupBy (t => t.Created.Year) ' – TestWell

+0

' OrderBy (..). ThenBy (..) 'недействителен ... – Eser

+0

или использовать' GroupBy (t => new { t.Created.Year, t.Created.Month}) 'для группировки обоими одновременно –

ответ

0

Не знаю, если это устраивает, но я хотел бы сделать что-то вроде этого:

var grouped = myList.GroupBy(t => t.Created.Year) 
    .Select(t => new 
    { 
     Year = t.Key, 
     Months = t.GroupBy(x => x.Created.Month) 
      .Select(y => new 
      { 
       Month = y.Key, 
       Values = y.ToList() 
      }) 
    }); 
Смежные вопросы