C#两个list集合实现关联,将一个集合的某列属性值赋给另一个集合的某个属性列

有两个list,listA 和listB,
listA中有三个属性列为StoreId、OrderCount,StaffCount,
listB中有两个属性列为StoreId、StaffCount,
listA中当前StaffCount列为空,listB中两列都不为空,如何使用linq将listB的StaffCount列的值赋给listA,对应关系为listA.StoreId=listB.StoreId

方法一:linq方法语法

                var listA = ...;
                var listB = ...;
                listA.ForEach(m =>
                    {
                        var s = listB.FirstOrDefault(n => n.StoreId == m.StoreId);
                        if(s != null)
                        {
                            m.StaffCount = s.StaffCount;
                        }
                    }
                    );

法二:linq查询语法

listA = (from a in listA
         join b in listB on a.StoreId equas b.StoreId into ab
         from ba in ab.DefaultIfEmpty(new ModelXXXB())
         select new ModelXXXA
          {
                StoreId = a.StoreId,
                OrderCount = a.OrderCount,
                StaffCount = ba.StaffCount
          }
         ).ToList()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值