Linq: группируйте по году и месяцу и управляйте пустыми месяцами

У меня есть следующий Linq для группировки списка по годам, а затем по месяцам.

var changesPerYearAndMonth = list
              .GroupBy(revision => new { revision.LocalTimeStamp.Year, revision.LocalTimeStamp.Month })
              .Select(group => new { GroupCriteria = group.Key, Count = group.Count() })
              .OrderBy(x => x.GroupCriteria.Year)
              .ThenBy(x => x.GroupCriteria.Month);

Мой текущий результат имеет следующий вид:

Year 2005, month 1, count 469
Year 2005, month 5, count 487
Year 2005, month 9, count 452
Year 2006, month 1, count 412
Year 2006, month 5, count 470
...

Как видите, месяцы без значения не включаются в запрос. Я хотел бы включить их, получив следующий результат:

Year 2005, month 1,  count 469
Year 2005, month 2,  count 0
Year 2005, month 3,  count 0
...
Year 2005, month 12, count 0
Year 2006, month 1,  count 412
Year 2006, month 2,  count 0
...
Year 2006, month 12, count 0

Другими словами, мне нужны еще и пустые месяцы.

Можно ли реализовать это с помощью запроса Linq? Заранее спасибо

8
задан Daniel Peñalba 22 November 2010 в 13:49
поделиться