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

标签 c# .net linq collections observablecollection

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

相关文章:

.net - 为什么 Console.ReadKey() 会阻止在另一个线程中调用的 Console.WriteLine 的输出?

.net - 在哪里使用工作单元模式验证我的实体?

.net - 允许用户对 DataGridView 中的 LINQ 查询中的列进行排序

c# - 使用点符号、orderBy 和 firstOrDefault 的开源 C++ LINQ 库?

c# - 异常消息是 'Value cannot be null. Parameter name: propertyResourceType'

c# - 如何从 ASP.NET 关闭机器

c# - QuickGraph Dijkstra 示例

c# - 如何将列表的属性收集到 C# 中的另一个列表?

c# - Microsoft Code Contracts 和 CI 构建服务器

c# - ‘帮助’ 服务器无法生成主键列