关于C#:按不同日期拆分列表

关于C#:按不同日期拆分列表

Split a list by distinct date

希望另一个容易。

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

1
List<DateTime> allDates;

我想把它变成

1
List<List<DateTime>> dividedDates;

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

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

接受的答案是正确的。

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


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

这是方法表格。

1
2
3
4
allDates
  .GroupBy(d => d.Year)
  .Select(g => g.ToList())
  .ToList();


推荐阅读