title: Linq: group by year and month, and manage empty months
body: <p>I have the following Linq to group a list by year, then by month.</p>
  
  <pre><code>var changesPerYearAndMonth = list
                .GroupBy(revision =&gt; new { revision.LocalTimeStamp.Year, revision.LocalTimeStamp.Month })
                .Select(group =&gt; new { GroupCriteria = group.Key, Count = group.Count() })
                .OrderBy(x =&gt; x.GroupCriteria.Year)
                .ThenBy(x =&gt; x.GroupCriteria.Month);
  </code></pre>
  
  <p>My current output is the following:</p>
  
  <pre><code>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
  ...
  </code></pre>
  
  <p>As you can see, months without value, are not included in the query. I would like to include them, having the following output:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>In other words, I need to get also empty months. </p>
  
  <p>Could I implement this with a Linq query? Thanks in advance</p>