/ / linq - c#、.net、linq、.net-4.0、linq-to-objectsを使用して、日付とIDでグループ化された合計時間を計算します。

linq-c#、.net、linq、.net-4.0、linq-to-objectsを使って、日付とIDによる合計時間グループを計算する

私のデータはこのように見えます

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でこれを行う方法はありますか?

回答:

回答№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)
};

ここは 作業プログラム.