以 X 分钟为单位进行分组,以 X 分钟为间隔进行分组

Joh*_*ohn 3 .net c#

我有一个对象列表,需要将其分组为 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
Run Code Online (Sandbox Code Playgroud)

我需要这个返回:

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
Run Code Online (Sandbox Code Playgroud)

Ian*_*cer 5

您可以在 LINQ 中使用 GroupBy:

 times.GroupBy(y => (int)(y.Ticks / TimeSpan.TicksPerMinute / 5))
Run Code Online (Sandbox Code Playgroud)

只需将每个 DateTime 所代表的总分钟数除以 5,将其减少到适当编号的 5 分钟间隔即可。