我有一个对象列表,需要将其分组为 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)
您可以在 LINQ 中使用 GroupBy:
times.GroupBy(y => (int)(y.Ticks / TimeSpan.TicksPerMinute / 5))
Run Code Online (Sandbox Code Playgroud)
只需将每个 DateTime 所代表的总分钟数除以 5,将其减少到适当编号的 5 分钟间隔即可。