使用LINQ更新其他列表的对象列表

时间:2012-08-14 09:24:47

标签: linq list

我有这两个列表

var amountList = (from i in outstandingsList
                  join f in accountablesList
                       on i.Contract equals f.Contract
                  select f.Amount).ToList();

var commonContractsList = (from i in outstandingsList
                           join f in accountablesDdrsList
                                on i.Contract equals f.Contract
                           select i).ToList();

列表金额列表获取accountablesList和outstandingsList中所有常见合约的accountablesList金额。

列表commonContractsList获取outstandingsList和accountablesDdrsList中的所有共同契约。

我想要的是更新commonContractsList中的金额以及以合约为核心的amountlist中的所有金额。

我试图做一个foreach,但我似乎无法正确地采取行动的顺序。

有什么想法吗? 事先提前。 瑞·马丁斯

1 个答案:

答案 0 :(得分:0)

请查看下面的代码。您可以在第一个Linq查询中添加f.Contract,然后在循环时使用该一个来搜索其他实体以获取值,然后分配值..

var amountList =(
                 from i in outstandingsList
                 join f in accountablesList
                    on i.Contract equals f.Contract
                 select f.Amount,f.Contract).ToList();  

var commonContractsList = (from i in outstandingsList
                           join f in accountablesDdrsList
                             on i.Contract equals f.Contract
                           select i).ToList();

foreach(var contract in commonContractsList)
{
   var amount=amountList.Where(o=>o.Contract==contract.Contract).Select(o=>o.Amount);
   contract.Amount=amount;
}
相关问题