按不同日期拆分列表

Posted

技术标签:

【中文标题】按不同日期拆分列表【英文标题】:Split a list by distinct date 【发布时间】:2010-09-09 08:15:23 【问题描述】:

希望是另一个简单的。

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

List<DateTime> allDates;

我想把它变成

List<List<DateTime>> dividedDates;

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

是否有一点我疲惫的大脑现在无法辨认的 LINQ 诡计?

解决方案

接受的答案是正确的。

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

【问题讨论】:

【参考方案1】:
var q  = from date in allDates 
         group date by date.Year into datesByYear
         select datesByYear.ToList();
q.ToList(); //returns List<List<DateTime>>

【讨论】:

谢谢!如果我错了,请在关于 ToList() 要求的问题中查看我的小评论:-)【参考方案2】:

这是方法表单。

所有日期 .GroupBy(d => d.Year) .Select(g => g.ToList()) .ToList();

【讨论】:

以上是关于按不同日期拆分列表的主要内容,如果未能解决你的问题,请参考以下文章