【问题标题】:Linq query for updating list of objects with some data from another list of objects用于使用另一个对象列表中的一些数据更新对象列表的 Linq 查询
【发布时间】:2014-07-17 09:27:17
【问题描述】:

我有两个对象的列表:

IList<DetailsObject>

IList<UpdatesObject> 包含更新。

两个对象中的共同不同字段是 ID,UpdatesObject 字段只是所有 DetailsObject 字段的子集。

我可以使用 Linq 方法用来自 UpdatesObject 的值更新 DetailsObject。我知道最简单的解决方案是迭代 UpdatesObject 并在每次迭代中找到 ID 匹配的对象,然后更新必要的内容。

foreach(UpdatesObject uobj in IList<UpdatesObject>)
{
    foreach(DetailsObject dobj in IList<DetailsObject>)
    {
        if (uobj.ID == dobj.ID)
        {
            dobj.Detail1 = uobj.Detail1;
            dobj.Detail2 = uobj.Detail2;
        }
    }
}

没有这样的嵌套循环是否可以实现?

【问题讨论】:

  • 也许有更好的方法来处理对象更新?

标签: c# linq


【解决方案1】:

您可以根据 ID 列加入两个列表,然后使用 foreach 循环更新您的对象:

var objects = from u in UpdatesObject
              join d in DetailsObject on u.ID equals d.ID
              select new { Update = u, Detail = d };

foreach(var obj in objects)
{
    obj.Detail.Detail1 = obj.Update.Detail1;
    obj.Detail.Detail2 = obj.Update.Detail2;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多