【发布时间】:2013-01-28 09:37:08
【问题描述】:
我想按时间步长(小时、天、周等)对列表进行分组,并计算每个组的总和,但从特定时间开始。
现在我有了输入列表:
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
【问题讨论】:
标签: c# linq list grouping timespan