按不同的日期拆分列表

时间:2008-09-16 06:15:50

标签: c# linq

希望另一个容易的人。

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

List<DateTime> allDates;

我想把它变成

List<List<DateTime>> dividedDates;

其中'divideDates'中的每个List包含'allDates'中属于不同年份的所有日期。

我的疲惫的头脑现在无法挑选出一些LINQ诡计吗?

解决方案

接受的答案是正确的。

谢谢,我不认为我知道GroupBy的'into'位,我试图使用.GroupBy()方法而不是SQL语法。并且感谢您确认ToList()修正案并将其包含在接受的答案中: - )

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:7)

这是方法表格。

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