[英]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.