按不同日期拆分列表

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();

【讨论】:

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

Pandas:在两个不同时间序列中按日期顺序分组在同一 ID 下的列表中显示事件

R:具有多个标题的列表-如何按标题拆分(每个标题的行数不等)

Ebean按不同的日期排序

拆分日期并将日期、月份、年份保存在不同的列中

按日期选择不同的前一条记录

如果将给定日期的总时数值超过午夜,则在不同日期拆分行