1

这是我的课:

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# 示例按 ID 获取 AccountValue 值组的总和:

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

代码:

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

我想从 Acc 对象中按 ID 获取值组的总和

4

1 回答 1

2

我猜你正在寻找类似的东西:

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)
                       });
于 2013-10-02T14:02:27.773 回答