Linq用join更新 [英] Linq update with join

查看:154
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆