Another easy one hopefully.
Let's say I have a collection like this:
List<DateTime> allDates;
I want to turn that into
List<List<DateTime>> dividedDates;
where each List in 'dividedDates' contains all of the dates in 'allDates' that belong to a distinct year.
Is there a bit of LINQ trickery that my tired mind can't pick out right now?
Solution
The Accepted Answer is correct.
Thanks, I don't think I was aware of the 'into' bit of GroupBy and I was trying to use the .GroupBy() sort of methods rather than the SQL like syntax. And thanks for confirming the ToList() amendment and including it in the Accepted Answer :-)
var q = from date in allDates
group date by date.Year into datesByYear
select datesByYear.ToList();
q.ToList(); //returns List<List<DateTime>>
Here's the methods form.
allDates .GroupBy(d => d.Year) .Select(g => g.ToList()) .ToList();
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