聚合和不同的linq查询输出到列表

时间:2013-08-01 22:01:20

标签: c# linq

如何使用聚合运算符转换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

非常感谢任何帮助

1 个答案:

答案 0 :(得分:7)

使用GroupBySum

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删除时间部分。