2011-07-12 73 views
0
class YearlyData 
{ 
    MonthlyData[] monthlyData = new MonthlyData[12]; 
} 

class MonthlyData 
{ 
    int Salary; 
} 

鑑於我有一個List<YearlyData>,我怎麼能找到一個給定月份的總工資。 三年的例子我需要在第一個月的總月薪&。如何通過LINQ獲取嵌套集合的總和

+0

你的意思是「第一個月及以後的月份」究竟是什麼意思? –

回答

2

如果你想把所有的工資爲四月總和:

List<YearlyData> l; 
l.Sum(yd => yd.monthlyData[3].Salary); 

如果我誤解你的問題,你真的需要一份4 &隨後幾個月的所有工資(當年)

l.Sum(yd => yd.monthlyData.Skip(3).Sum()); 
0

事情是這樣的:

list.SelectMany(x => x.monthlyData 
         .Select((m, i) => new {month = i+1, 
              data = m.Salary} 
       )) 
    .GroupBy(x => x.month) 
    .Select(x => new {month = x.Key, 
         total = x.Sum(m => m.data)}); 

這會給你一個列表有十二項,一個用於與該月的總金額以及每月。