在执行内部操作后使用LINQ从对象获取结果?

时间:2012-10-23 11:43:09

标签: linq

我有一个具有以下属性的对象列表: 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表达式执行此操作?

1 个答案:

答案 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)
            };

因此,您将开始和结束时间存储为浮点数,您可以简单地减去它们并进行计算。