2016-05-12 75 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] 
    });