使用LINQ将其与其他列表进行比较时,如何在一个列表中设置值

Fer*_*vić 1 c# linq

我有两个清单:

List A                         List B

ID  FirstName  WorkingID       ID  FirstName  WorkingID
5   John       Null            5   John       1 
9   Patrick    Null            9   Patrick    2
16  Ryan       Null            16  Ryan       3
Run Code Online (Sandbox Code Playgroud)

我想使用LINQ比较这些列表,如果两个列表中的ID相等,我想在第一个列表中设置WorkingID,一个列表.谢谢.

Gio*_*uri 5

也像这样:

A.ForEach(c => c.WorkingID = B.Where(m => m.ID == c.ID).Select(s => s.WorkingID).FirstOrDefault());
Run Code Online (Sandbox Code Playgroud)

完整来源:

public class Test
{
    public int ID;
    public int? WorkingID;
}
class Program
{
static void Main(string[] args)
{
    var A = new List<Test>() 
    { 
        new Test { ID = 5, WorkingID = null }, 
        new Test { ID = 9, WorkingID = null }, 
        new Test { ID = 16, WorkingID = null }, 
        new Test { ID = 18, WorkingID = null } 
    };
    var B = new List<Test>() 
    { 
        new Test { ID = 5, WorkingID = 1 }, 
        new Test { ID = 9, WorkingID = 2 }, 
        new Test { ID = 16, WorkingID = 3 } 
    };

    A.ForEach(c => c.WorkingID = B.Where(m => m.ID == c.ID).Select(s => s.WorkingID).FirstOrDefault());
}
}
Run Code Online (Sandbox Code Playgroud)