2013-10-02 29 views
0

這是我的課選擇列表中值的總和:裏面怎麼另一個列表

Data: 

    ID=1 value=5 
    ID=1 value=6 
    ID=2 value=7 
    ID=2 value=9 
    ID=3 value=2 

Can I get this Result: 
    ID=1 Value=11 
    ID=2 value=16 
    ID=3 value=2 

class Account{ 
     public List<AccountRecord> AccountRecords{set;get;}  
} 
class AccountRecord{ 
     public IEnumerable<AccountValue> AccountValues{set;get;}  
} 
class AccountValue{ 
public int ID{set;get;}  
public decimal value{set;get;}  
} 

可以使用實體框架C# 例如我得到AccountValue值組的總和ID代碼:

Account acc = new Account(); 
     AccountRecord ar = new AccountRecord(); 
     ar.AccountValues.Add(new AccountValue { ID = 1, value = 5 }); 
     ar.AccountValues.Add(new AccountValue { ID = 1, value = 7 }); 
     ar.AccountValues.Add(new AccountValue { ID = 2, value = 9 }); 
     ar.AccountValues.Add(new AccountValue { ID = 2, value = 6 }); 
     ar.AccountValues.Add(new AccountValue { ID = 3, value = 2 }); 

     AccountRecord ar1 = new AccountRecord(); 
     ar1.AccountValues.Add(new AccountValue { ID = 1, value = 10 }); 
     ar1.AccountValues.Add(new AccountValue { ID = 1, value = 70 }); 
     ar1.AccountValues.Add(new AccountValue { ID = 2, value = 90 }); 
     ar1.AccountValues.Add(new AccountValue { ID = 2, value = 60 }); 
     ar1.AccountValues.Add(new AccountValue { ID = 3, value = 20 }); 
     acc.AccountRecords.Add(ar1); 

我想通過ID來自ACC的對象來獲取值組的總和

+0

你嘗試過什麼?在一個簡單的例子中,你可以使用'for..each'循環來實現這一點。 – Yuck

+0

我更新了我的問題 –

回答

1

我猜你正在尋找的東西,如:

Account accountObj = new Account(); 
var result = accountObj.AccountRecords 
         .SelectMany(r => r.AccountValues) 
         .GroupBy(r => r.ID) 
         .Select(grp => new 
         { 
          ID = grp.Key, 
          Sum = grp.Sum(t => t.value) 
         }); 
相關問題