我们需要Linq的一个要求,其中group by with multiple columns,并添加新列,基于group添加总和...
表格。
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列),我们需要分组&算一节
还将另一列添加为“Count”。
请帮我完成这件事。
答案 0 :(得分:0)
见下面的代码:
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]
});