首页 > 解决方案 > 如何在LINQ中获取groupby之后的所有字段

问题描述

我有这个对象

结果视图

结果视图脱光

使用 Fecha="Julio2017" 我有 2 个项目,我需要按 SubcontratistaId 和 Fecha 对这三个项目进行分组。

item1.Realizado=40​​60.000 和 item2.Realizado=-4060.000 所以我需要在 Julio2017 中显示 0 的值

所以我试试这个

private IEnumerable<SubcontratacionesEnFecha> GetRealizadosEnFecha(string proyectoId)
.....   
return realizadosAbonadosEnFechaAcumulados
   .GroupBy(x => new { x.SubcontratistaId, x.Fecha })

但是现在我不知道如何获取所有分组的项目的值

如果我尝试这个,我会得到错误 错误

如果我试试这个

return realizadosAbonadosEnFechaAcumulados
   .GroupBy(x => new { x.SubcontratistaId, x.Fecha })
   .Select(x=>x.First())
   .ToList();

我明白了

首先没有 agrupado con

也就是说,我得到分组项目的第一个值

有什么想法吗?

谢谢

标签: linqlinq-group

解决方案


GroupByreturn IGrouping<,>,它有 Key 并且它本身是IEnumerable<>分组项。所以更可能的用法是:

return realizadosAbonadosEnFechaAcumulados
   .GroupBy(x => new { x.SubcontratistaId, x.Fecha })
   .Select(g => new 
   { 
      g.Key.SubcontratistaId,
      g.Key.Fecha,
      Items = g.ToList()
   })
   .ToList();

推荐阅读