我的数据是这样的
ID | START_DATE | END_DATE | Chapter
1 01/03/2013 05:15:14 01/03/2013 06:20:14 1
1 01/03/2013 06:25:33 01/03/2013 06:40:11 2
2 01/03/2013 05:01:34 01/03/2013 05:30:13 1
2 01/03/2013 05:31:20 01/03/2013 06:30:13 2
2 01/03/2013 06:32:20 01/03/2013 07:20:01 3
1 02/03/2013 05:15:14 01/03/2013 06:20:14 1
1 02/03/2013 06:25:33 01/03/2013 06:40:11 2
我想要这样的结果
ID | Date | Total Duration
1 01/03/2013 Time in Minutes
1 02/03/2013 Time in Minutes
2 02/03/2013 Time in Minutes
有一种方法可以使用 C# 使用 linq 来做到这一点吗?
最佳答案
按日期和 id 对项目进行分组,并计算每组的持续时间总和:
var query = from r in records
group r by new { r.Id, r.StartDate.Date } into g
select new {
g.Key.Id,
g.Key.Date,
TotalDuration = g.Sum(x => (x.EndDate - x.StartDate).TotalMinutes)
};
这里是 working program .
关于c# - 使用 linq 计算按日期和 id 分组的总时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17067717/