按不同日期拆分列表

时间:2020-03-05 18:55:14  来源:igfitidea点击:

希望另一个容易的人。

假设我有一个像这样的集合:

List<DateTime> allDates;

我想把它变成

List<List<DateTime>> dividedDates;

其中" dividedDates"中的每个列表都包含" allDates"中属于不同年份的所有日期。

是否有一些LINQ诡计使我疲惫的头脑现在无法挑出来?

解决方案

接受的答案是正确的。

谢谢,我认为我没有意识到GroupBy的"入门"知识,我正尝试使用.GroupBy()这样的方法,而不是使用类似SQL的语法。并感谢我们确认ToList()修订并将其包含在"可接受的答案"中:-)

解决方案

回答

var q  = from date in allDates 
         group date by date.Year into datesByYear
         select datesByYear.ToList();
q.ToList(); //returns List<List<DateTime>>

回答

这是方法表格。

allDates
  .GroupBy(d => d.Year)
  .Select(g => g.ToList())
  .ToList();