我需要一些LINQ-2-SQL的帮助才能将一些博客文章分组一年和一个月。
基本上,我有一系列具有以下属性的博客帖子
我希望能够遍历每年,然后遍历那一年的每个月,最后,遍历那个月内的每篇博文。像
这样的东西等......
有没有办法可以使用group by子句使用单个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() });
答案 0 :(得分:10)
我实际上没有对此进行过测试,但它看起来像一个开始,通过查看this msdn article写道:
var groupedBlogPosts =
from p in blogPostsFiltered
group p by p.Date.Year into yg
select
new
{
Year = yg.Key,
MonthGroups =
from o in yg
group o by o.Date.Month into mg
select new { Month = mg.Key, Posts = mg }
};
在GroupBy - Nested
标题下查看。
答案 1 :(得分:5)
如果您不想进行投影并将其保留为分组,则可以选择此选项。
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 };