从另一个(均基于同一类)更新ObservableCollection的以下方法是否足够好,或者以另一种方式(或只是加以改进)更好?

foreach (MyEntity c in collection2)
    {
       collection1.Where(p => p.EntID == c.EntID).FirstOrDefault().Field1 = c.Field1;
       collection1.Where(p => p.EntID == c.EntID).FirstOrDefault().Field2 = c.Field2;
       ...
       collection1.Where(p => p.EntID == c.EntID).FirstOrDefault().FieldN = c.FieldN;
    }


EntID是主键。
(足够好,我的意思是快速高效)。

最佳答案

   var myItem = collection1.Where(p => p.EntID == c.EntID).FirstOrDefault();
   if (myItem == null)
       continue;
   myItem.Field1 = c.Field1;
   myItem.Field2 = c.Field2;
   ...
   myItem.FieldN = c.FieldN;


如果myItemc是不同的类型,请查看AutoMapper。

关于c# - 从另一个集合更新集合的有效方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5747113/

10-10 21:39