C# 按年度分组,然后按月分组

C# 按年度分组,然后按月分组,c#,linq,C#,Linq,我需要一些关于LINQ-2-SQL的帮助,以便按年份和月份对一些博客文章进行分组 基本上,我有一个具有以下属性的博客帖子集合 身份证 头衔 日期 我希望能够每年迭代,然后迭代该年的每个月,最后迭代该月内的每个博客文章。差不多 2011年 四月(显示职位数量) 随机帖子1 随机帖子2 五月(显示职位数量) 随机帖子2 等… 有没有一种方法可以使用GROUPBY子句通过单个LINQ查询实现这一点 这是我所能得到的 var groupedBlogPosts = (from p in

我需要一些关于LINQ-2-SQL的帮助,以便按年份和月份对一些博客文章进行分组

基本上,我有一个具有以下属性的博客帖子集合

  • 身份证
  • 头衔
  • 日期
我希望能够每年迭代,然后迭代该年的每个月,最后迭代该月内的每个博客文章。差不多

  • 2011年
    • 四月(显示职位数量)
      • 随机帖子1
      • 随机帖子2
    • 五月(显示职位数量)
      • 随机帖子2
等…

有没有一种方法可以使用GROUPBY子句通过单个LINQ查询实现这一点

这是我所能得到的

var groupedBlogPosts = (from p in blogPostsFiltered
                group p by new { month = p.Date.Month, year = p.Date.Year } into d
                select new { postDate = string.Format("{0}/{1}", d.Key.month, d.Key.year), postCount = d.Count() });

我还没有实际测试过这个,但它看起来像是一个开始,通过查看以下内容写下:


查看
GroupBy-Nested
标题下的内容。

如果您不想进行投影并将其作为分组,这里有一个替代方法

var groupedBlogPosts =
    from post in blogPostsFiltered
    group post by new { post.Date.Year, post.Date.Month } into grouped
    group grouped by new { grouped.Key.Year };

如果你只想在你的文章中列出你所有的博客文章的缩进格式,那么按日期排序所有的帖子就更容易了,并且在循环中处理缩进,但是我可能会丢失一些无关的东西,但是你也可能想考虑按降序排序月份。所以最新的在顶部。谢谢@pickypg:我会在分组排序后立即订购@克里斯,我想你可能遗漏了一些东西,我不太明白我是如何通过循环浏览每一篇文章来对每件事进行分组的。就这样=)非常感谢。
var groupedBlogPosts =
    from post in blogPostsFiltered
    group post by new { post.Date.Year, post.Date.Month } into grouped
    group grouped by new { grouped.Key.Year };