按X分钟分组时间,每X分钟间隔拆分。

3

我可以帮您翻译。以下是需要翻译的内容:

我有一个对象列表,需要将它们分组成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

2
什么是问题?你尝试的方法有什么问题? - Pierre-Luc Pineault
2
在这里,询问代码问题时,如果没有显示出最低程度的努力,往往不会得到良好的回答。请编辑您的问题并添加您目前已经编写的代码。 - user47589
2个回答

5

您可以在LINQ中使用GroupBy:

 times.GroupBy(y => (int)(y.Ticks / TimeSpan.TicksPerMinute / 5))

只需将每个DateTime减少到适当的5分钟间隔,方法是将其表示的总分钟数除以5。


谢谢,我花了很长时间试图解决这个问题,结果原来是一个非常简单的解决方案,却一直让我思考得很费劲。 - John

0
从概念上讲,我会首先按日期进行分组,然后遍历所有日期组,并将不同的条目放入5分钟的时间桶中。时间桶可以作为预定义的Dictionary<int,List<DateTime>>来实现,并将其添加进去。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接