我的数据看起来像这样
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吗?
答案 0 :(得分:5)
按日期和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)
};