使用linq计算按日期和id分组的总时间

本文关键字:时间 id linq 计算 日期 使用 | 更新日期: 2023-09-27 18:18:16

我的数据是这样的

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

有一种方法可以做到这一点与linq使用c# ?

使用linq计算按日期和id分组的总时间

按日期和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)
            };