Linq用join更新 [英] Linq update with join
本文介绍了Linq用join更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个收藏夹
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 更新 materials 集合中的所有 Value 属性.>
如何执行此操作?
解决方案
我测试了以下代码,并且有效
var joins = from material in materials
join db_material in db_materials on material.Number equals db_material.Number
select new { material = material, db = db_material};
foreach (var join in joins)
{
join.material.Value = join.db.ValueColumn;
}
I have this two collections
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 });
and i need to update all Value properties in materials collection with ValueColumn in db_materials collection.
How to do this ?
解决方案
I tested following code and it works
var joins = from material in materials
join db_material in db_materials on material.Number equals db_material.Number
select new { material = material, db = db_material};
foreach (var join in joins)
{
join.material.Value = join.db.ValueColumn;
}
这篇关于Linq用join更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文