我有一个带有DateTime属性的类的集合,我想得到分钟和秒的总和。有没有简单的方法可以使用LINQ而无需手动求和分钟和秒数?
答案 0 :(得分:8)
我想你的意思是TimeSpan而不是DateTime?你不能添加DateTime的......
总结TimeSpan:
list.Sum(span => span.TotalSeconds)==>总秒数
TimeSpan.FromSeconds(...)==>将总秒数转换回时间跨度
然后,您可以使用TimeSpan中的属性将其重新格式化为小时,分钟,秒等。
答案 1 :(得分:3)
只是为了好玩...如果你真的想“获得分钟和秒的总和”那么:
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);