繁体   English   中英

Linq group by 和 sum 值添加另一列来求和

[英]Linq group by and sum the values add another column to sum

我们需要 Linq 的一项要求,通过多列分组并添加新列,通过在那里添加总和来基于分组...

表在这里。

Section SecCode Name      Count(new column based on Section count)
ABC        A-1   Ram        3
ABC        A-1   Rashid     3
ABC        A-1   Mani       3
CCC        B-1   Kutty      2
CCC        B-1   Bala       2 
GGG        C-1   Ravi       1

我们有像上面一样的数据表(3 列),我们需要按部分分组和计数

还添加到另一列作为“计数”。

请帮我完成这件事。

见下面的代码:

values.Select(v => new
{
  Section = v.Section,
  SecCode = v.SecCode,
  Name = v.Name,
  Count = values.Count(i => i.Section.Equals(v.Section))
});

替代方案(大表的性能优化):

var map = values.GroupBy(v => v.Section, v => v.Name)
    .ToDictionary(g => g.Key, g => g.Count());
var result = values.Select(v => new
    {
      Section = v.Section,
      SecCode = v.SecCode,
      Name = v.Name,
      Count = map[v.Section]
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM