从另一个(均基于同一类)更新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。关于c# - 从另一个集合更新集合的有效方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5747113/