我想按时间步长(小时、天、周等)对列表进行分组,并计算每个组的总和,但从特定时间开始。
现在我有输入列表:
TIME VALUE
11:30 2
11:50 2
12:00 6
12:30 10
12:50 2
和小时步
var timeStep=new TimeSpan(1,0,0);
我正在用这样的东西对我的列表进行分组
var myList = list.GroupBy(x =>
{
return x.Time.Ticks / timeStep.Ticks;
})
.Select(g => new { Time = new DateTime(g.Key * timeStep.Ticks), Value = g.Sum(x => x.Value) }).ToList();
它工作正常(也适用于任何其他步骤,例如每天、每周)并给出结果:
TIME SUM
11:00 4
12:00 18
但是现在我必须用小时步长对我的列表进行分组,但是从例如每小时 30 分钟开始,所以我该怎么做才能有这样的事情:
TIME SUM
11:30 10
12:30 12