Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 聚合和不同的linq查询输出到列表_C#_Linq - Fatal编程技术网

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

C# 聚合和不同的linq查询输出到列表,c#,linq,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/

如何使用聚合运算符转换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
非常感谢您的帮助

使用GroupBy和Sum:

如果日期实际上是日期时间,则应使用r.Date.Date删除时间部分。

使用GroupBy和Sum:


如果Date实际上是一个DateTime,那么应该使用r.Date.Date删除时间部分。

我认为07/29/2013->3.3、08/02/2013->7.3,。。。实际规则是什么?我猜规则是每组的小时数之和。@KingKing正确,这只是一个总和。我已经更新了上面的内容,我想2013年7月29日->3.3,2013年2月8日->7.3,。。。实际规则是什么?我猜规则是每组的小时数之和。@KingKing正确,这只是一个总和。我已经更新了上面的内容,你应该用Day=替换Date=你打败了我,我正要发布我的答案,这与你的答案完全相同,这没有意义。所以+1。@TimSchmelter为什么我的查询不起作用!?我添加了一个Where子句来过滤正确的结果,但它不是有效的var result=db.Table.Where=>r.Date>=week.GroupByr=>r.DateWorked.Selectg=>new{Day=g.Key,Hours=g.Sumr=>r.Hours}@user793468:可能是因为DateWorked是一个带有时间部分的日期时间。然后看一下我答案中的最后一句话。如果这对您没有帮助,您需要指定“不工作”。@TimSchmelter是的,这是日期时间。但我在尝试.Date“System.Nullable”时遇到此错误。它不包含“Date”的定义,并且找不到接受类型为“System.Nullable”的第一个参数的扩展方法“Date”?是否缺少using指令或程序集引用?您应该将Date=替换为Day=您打败了我,我正要发布我的答案,这与你的答案完全相同,但没有意义。所以+1。@TimSchmelter为什么我的查询不起作用!?我添加了一个Where子句来过滤正确的结果,但它不是有效的var result=db.Table.Where=>r.Date>=week.GroupByr=>r.DateWorked.Selectg=>new{Day=g.Key,Hours=g.Sumr=>r.Hours}@user793468:可能是因为DateWorked是一个带有时间部分的日期时间。然后看一下我答案中的最后一句话。如果这对您没有帮助,您需要指定“不工作”。@TimSchmelter是的,这是日期时间。但我在尝试.Date“System.Nullable”时遇到此错误。它不包含“Date”的定义,并且找不到接受类型为“System.Nullable”的第一个参数的扩展方法“Date”。是否缺少using指令或程序集引用?
var result = db.Table
    .GroupBy(r => r.Date)
    .Select(g => new{ Day=g.Key, Hours=g.Sum(r=> r.Hours) })