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

class MonthlyData 
{ 
    int Salary; 
} 

Étant donné que j'ai un List<YearlyData>, comment puis-je trouver le salaire total pour un mois donné pour le nombre d'années. Exemple pour trois ans, j'ai besoin du salaire total donné pour le 1er mois & mois suivants.Comment obtenir la somme dans la collection imbriquée via LINQ

+0

Qu'entendez-vous par «premier mois et mois suivants» exactement? –

Répondre

2

Si vous voulez que la somme de tous les salaires pour Avril:

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

Si je mal lu votre question, et vous voulez vraiment tous les salaires pour avril & mois suivants (dans l'année)

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

Quelque chose comme ceci:

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

Cela vous donnera une liste de douze entrées, une pour chaque mois ainsi que le montant total de ce mois.

Questions connexes