我有一个对象列表,我需要分组成5分钟的块,分开5分钟翻转,即0,5,10,15,20,25分钟等等。
取这个时间列表(dd / MM / yyyy hh:mm)例如:
01/01/2000 17:00
01/01/2000 17:07
01/01/2000 17:08
01/01/2000 17:09
01/01/2000 17:10
01/01/2000 17:11
01/01/2000 17:12
05/05/2012 10:45
05/05/2012 10:46
我需要这个回复:
01/01/2000 17:00
----------------
01/01/2000 17:07
01/01/2000 17:08
01/01/2000 17:09
01/01/2000 17:10
----------------
01/01/2000 17:11
01/01/2000 17:12
----------------
05/05/2012 10:45
----------------
05/05/2012 10:46
答案 0 :(得分:4)
您可以在LINQ中使用GroupBy:
times.GroupBy(y => (int)(y.Ticks / TimeSpan.TicksPerMinute / 5))
只需将每个DateTime减少到相应的编号为5分钟的时间间隔,然后将它所代表的总分钟数除以5。
答案 1 :(得分:0)
从概念上讲,我会先按日期分组,然后遍历所有日期组并将不同的条目放入5分钟的时间段。时间桶也许可以实现为您添加到
的预定义Dictionary<int,List<DateTime>>