通过另一个列表更新列表(linq)

pro*_*rog 4 c# linq

我有类“Data”的对象列表,如下所示:

class Data
{
    int code;
    string name;
    ...
    DateTime date_update;
}
Run Code Online (Sandbox Code Playgroud)

我还有另一个课程列表,例如:

class RefCodes
{
    int old_code;
    int new_code;
    string new_name;
    DateTime date_update;
}
Run Code Online (Sandbox Code Playgroud)

“Data”列表包含大约 1,000 个对象。“RefCodes”列表包含大约 30 个对象。

我需要在列表“Data”中替换字段:“code”的值为“new_code”,“name”的值为“new_name”。

替换只需针对其代码存在于列表“RefCodes”中的对象。通过查询: if code in Data.code == RefCodes.old_code How can I do it?

CDo*_*ove 5

我想你正在寻找这个:

foreach (var rcodeObj in RefCode)
{
     foreach(var obj in (Data.Where(t => t.code == rcodeObj.old_code)))
     {
        obj.code = rcodeObj.new_code;
        obj.name = rcodeObj.new_name;
     }
}
Run Code Online (Sandbox Code Playgroud)