如何使用LINQ查找DateTime的总和

时间:2011-04-02 13:45:53

标签: c# linq datetime

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

2 个答案:

答案 0 :(得分:8)

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

总结TimeSpan:

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

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

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

答案 1 :(得分:3)

斯蒂芬的回答是+1。

只是为了好玩...如果你真的想“获得分钟和秒的总和”那么:

 class MyClass
 {
     public DateTime DateTimeMember {get;set;}
     // other stuff
 }


 var myObjects = new List<MyClass>();

 // fill list...

 // 3 possible things you might be interested in
 var myMinuteSum = myObjects.Sum(x => x.DateTimeMember.Minute);
 var mySecondSum = myObjects.Sum(x => x.DateTimeMember.Second);     
 var myOddTotalOfMinutesAndSecondsInSeconds = myObjects.Sum(x => x.DateTimeMember.Minute * 60 + x.DateTimeMember.Second);