2016-05-12 71 views
-3

我们需要同组的多个列的LINQ的一个要求,通过和添加有总和添加新列,基于组...LINQ的GROUP BY和值相加另一列添加总结

表在这里。

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列)的数据表,我们需要按&计数该科

也添加到另一个塔作为“计数”。

请帮我完成这件事。

+1

你有东西,甚至部分作品? – ChrisF

+0

你显示的两个表是一样的吗?这些是输入吗?什么是预期的输出? –

+0

也许这可能会有所帮助,并向您展示询问LINQ问题的更好方法。 http://stackoverflow.com/questions/7853221/linq-grouping-data-twice – Stephen

回答

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] 
    });