c# - 聚合和区分 linq 查询输出以列出

标签 c# linq

如何使用聚合运算符转换 linq 查询输出并将不同的输出显示到列表?

这是我存储在数据库中的内容,它是通过 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

非常感谢任何帮助

最佳答案

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

关于c# - 聚合和区分 linq 查询输出以列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18005401/

相关文章:

c# - 多面体中点的反向方向

c# - 使用 Exact Word 的 LINQ 过滤列表

c# - 使用 LINQ 将复杂对象映射到字典

sql - UseDatabaseNullSemantics 仍然生成 NULL 检查

c# - 如何使用 linq 按集合中的属性排序?

javascript - LinkBut​​ton OnClick 不与数据目标和数据切换一起运行

c# - 什么是可以处理代理对的 String.IndexOf(string input) 的 Unicode 安全副本?

c# - 如何防止用户多次登录我的站点?

.net - Entity Framework linq - 我应该学习哪个,基于查询的方法?

c# - Oracle 客户端似乎正在为每一行传输所有 4000 个 varchar 字符