如何使用聚合运算符转换linq查询输出并将不同的输出显示到列表?
这是我存储在DB中的内容,它是通过linq查询提取的:
Date Hours
07/29/2013 1.3
07/29/2013 2.0
07/30/2013 3.1
07/31/2013 0.1
07/31/2013 5.2
08/01/2013 1.1
08/01/2013 1.1
08/01/2013 2.2
08/02/2013 3.3
08/02/2013 4.0
08/03/2013 2.1
以下是我想要的数据:
Day Hours
07/29/2013 3.3
07/30/2013 3.1
07/31/2013 5.3
08/01/2013 4.4
08/02/2013 7.3
08/03/2013 2.1
非常感谢任何帮助
答案 0 :(得分:7)
使用GroupBy
和Sum
:
var result = db.Table
.GroupBy(r => r.Date)
.Select(g => new{ Day=g.Key, Hours=g.Sum(r=> r.Hours) })
如果Date
实际上是DateTime
,则应使用r.Date.Date
删除时间部分。