我有一个具有以下属性的对象列表: RoomName,Date,StartTime,EndTime。
我想获得每个Roomname的总小时数,这被计算为EndTime-StartTime。
如果我有一个列表:
room1 12/2/2012 11.0 12.0
room1 12/2/2012 13.0 15.0
room2 12/3/2012 11.0 12.0
当我将room1发送到LINQ查询时,我希望答案为(12.0-11.0)+(15.0-13.0),即3。 如何使用LINQ表达式执行此操作?
答案 0 :(得分:1)
我相信这会进行分组和计算
var query = from r in rooms
group by r.RoomName into g
select new {
RoomName = g.Key,
TotalHours = g.Sum(x => x.EndTime-x.StartTime)
};
因此,您将开始和结束时间存储为浮点数,您可以简单地减去它们并进行计算。