首页 > 解决方案 > Linq 更新加入

问题描述

我有这两个系列

var materials = new List<Models.Material>();
materials.Add(new Models.Material { Number = 111, Value = null });
materials.Add(new Models.Material { Number = 222, Value = null });

var db_materials = new List<Models.DB_Material>();
db_materials.Add(new Models.DB_Material { Number = 111, ValueColumn = 10});
db_materials.Add(new Models.DB_Material { Number = 222, ValueColumn = 20 });
db_materials.Add(new Models.DB_Material { Number = 333, ValueColumn = 30 });
db_materials.Add(new Models.DB_Material { Number = 444, ValueColumn = 40 });

我需要使用db_materials集合中的ValueColumn更新材料集合中的所有Value属性。

这个怎么做 ?

标签: c#linq

解决方案


您也可以在没有连接的情况下执行此操作。试试下面的片段:

materials.ForEach(x => x.Value = db_materials.FirstOrDefault(y => y.Number == x.Number).ValueColumn);

ForEach()将更新原始实例本身的值。无需使用循环或连接。


推荐阅读