C# 如何使用linq/lambda计算日期之间的组差异?
我一直在寻找一种方法来实现这一点,但我没有成功。以下是我的问题,我有一个如下表:C# 如何使用linq/lambda计算日期之间的组差异?,c#,entity-framework,lambda,C#,Entity Framework,Lambda,我一直在寻找一种方法来实现这一点,但我没有成功。以下是我的问题,我有一个如下表: ID|CATEGORY|START_DATE |END_DATE 1 T1 2019-08-29 12:00:00 2019-08-29 12:10:00 2 T1 2019-08-30 13:00:00 2019-08-30 13:20:00 3 T2 2019-08-30 14:00:00 2019-08-
ID|CATEGORY|START_DATE |END_DATE
1 T1 2019-08-29 12:00:00 2019-08-29 12:10:00
2 T1 2019-08-30 13:00:00 2019-08-30 13:20:00
3 T2 2019-08-30 14:00:00 2019-08-30 14:10:00
我要做的是按类别分组,将两个日期之间的差值相加,得到如下结果:T1-->30分钟,t2-->10分钟
这就是我尝试过的:
foreach (IGrouping<string, TABLE1> group in result)
{
series.Add(new PieSerie("SerieName", group.AsEnumerable().Sum(x => (x.START_DATE- x.END_DATE).Value.Seconds )));
}
foreach(结果中的i分组)
{
series.Add(新的PieSerie(“SerieName”,group.AsEnumerable().Sum(x=>(x.START\u DATE-x.END\u DATE).Value.Seconds));
}
但它不起作用。我得到的每一个结果都是“0”,而不是总的分钟数。如果从
2019-08-30 14:00:00
中减去(作为DateTime
)2019-08-30 14:10:00:00
,你会得到(作为TimeSpan
)00:10:00
,也就是说“零小时、十分钟和零秒”。“和零秒”是一条线索,说明为什么您从.seconds
获得0
。您可能需要.TotalSeconds
(将是600
),或者只保留整个时间跨度
本身。可能重复的我被确认了,我是lambda和linq查询的新手,我总是使用DateTime,而不是TimeSpan。这就是为什么我想得到那样的秒数。但这几秒钟解决了问题。谢谢