如何使用LINQ查找DateTime的总和

Pri*_*aka 3 c# linq datetime

我有一个带有DateTime属性的类的集合,我想得到Minutes和Seconds的总和.有没有简单的方法可以使用LINQ而无需手动求和分钟和秒数?

Ste*_*ung 8

我想你的意思是TimeSpan而不是DateTime?你不能添加DateTime的......

总结TimeSpan:

  1. list.Sum(span => span.TotalSeconds)==>总秒数

  2. TimeSpan.FromSeconds(...)==>将总秒数转换回时间跨度

然后,您可以使用TimeSpan中的属性将其重新格式化为小时,分钟,秒等.

  • 无需通过`int`这样做的单行方法是使用`Aggregate`函数,如下所示:`list.Aggregate((sum,next)=> sum + next)`.你从该方法中获得的`TimeSpan`将是列表中所有`TimeSpan'的总和. (6认同)