Skip to main content
 首页 » 编程设计

c#之从另一个集合更新集合的有效方法

2024年02月03日23mengfanrong

以下从另一个更新 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; 

如果 myItem 和 c 是不同的类型,请查看 AutoMapper。