2012-02-27 69 views
1

如果我有一個名爲Spendline的對象的列表,其中包含兩個屬性Year和Amount和BudgetID。我怎樣才能最好轉換下表:如何使用Linq返回列表中所有對象總和的對象?

Year  Amount  BudgetID 
2000  100   1 
2001  100   1 
2002  100   1 
2003  100   1 
2001  100   2 
2002  100   2 
2003  100   2 

要這樣:

Year  Amount  
2000  100   
2001  200   
2002  200  
2003  200 

使用LINQ?

回答

0

我認爲你可以做到這一點GroupBySum函數

用循環獲取此數據的示例可能如下所示:

foreach(var group in SpendlineList.GroupBy(x => x.Year)) 
{ 
    int year = group.Key; 
    int ammount = group.Sum(x => x.Ammount); 
} 
4

看起來像你想要的東西,如:

var query = items.GroupBy(x => x.Year, x => x.Amount) 
       .Select(g => new { Year = g.Key, Amount = g.Sum() }; 

或者作爲查詢表達式:(。上查詢呼叫ToList獲得當然是List<T>

var query = from item in items 
      group item.Amount by item.Year into g 
      select new { Year = g.Key, Amount = g.Sum() }; 

相關問題