I need some help with LINQ-2-SQL in order to group some blog posts by a year and month.
Basically, I have a collection of blog posts that have the following properties
I want to be able to iterate through each year, then iterate through every month of that year, and finally, iterate through every blog post within that month. Something like
etc...
Is there a way I can do this with a single LINQ query, using the group by clause?
Here's as far as I've got
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() });
I haven't actually tested this, but it looks like a start, wrote this by looking at 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 }
};
Look under the GroupBy - Nested
heading.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With