3

我的数据看起来像这样

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 执行此操作吗?

4

1 回答 1

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)
            };

这是工作程序

于 2013-06-12T14:13:41.233 回答