C# Linq要加入两个相似的对象列表吗?

C# Linq要加入两个相似的对象列表吗?,c#,linq,C#,Linq,这就是我尝试过的。它工作了,但我想一定有办法通过使用linQ来缩短代码,我不知道: objC = new obj() { ID = 123, attriA = "someValueA", attriB = "someBalueB" } 您可以使用linq join,如下所示 foreach(obj item in ListA) { obj objB = ListB.Where(x=> x.ID == item.ID).FirstOrDefault();

这就是我尝试过的。它工作了,但我想一定有办法通过使用linQ来缩短代码,我不知道:

objC = new obj()
{
    ID = 123,
    attriA = "someValueA",
    attriB = "someBalueB"
}

您可以使用linq join,如下所示

foreach(obj item in ListA)
{
    obj objB = ListB.Where(x=> x.ID == item.ID).FirstOrDefault();

    obj objC = new obj(){
        ID = objB.ID;
        attriA = item.attriA;
        attriB = objB.attriB;
    };
    ListC.add(objC);
}

以上代码未经测试

您可以按如下方式使用linq join

foreach(obj item in ListA)
{
    obj objB = ListB.Where(x=> x.ID == item.ID).FirstOrDefault();

    obj objC = new obj(){
        ID = objB.ID;
        attriA = item.attriA;
        attriB = objB.attriB;
    };
    ListC.add(objC);
}

上述代码未经测试

如果始终存在字符串,则可以使用以下内容:

 var query = from a in ListA
                join b in ListB
                     on a.ID equals b.ID
                select new Obj()
                {
                     ID = b.ID;
                attriA = a.attriA;
             attriB = b.attriB;
                };

如果始终存在字符串,则可以使用以下内容:

 var query = from a in ListA
                join b in ListB
                     on a.ID equals b.ID
                select new Obj()
                {
                     ID = b.ID;
                attriA = a.attriA;
             attriB = b.attriB;
                };

要优化或查看代码,请访问以优化或查看代码,请访问此功能适用于此特定场景,但如果obj a上的attribA是一个没有值的功能,而您希望使用attribB,则它将不起作用。此功能适用于此特定场景,但如果obj a上的attribA是一个没有值的功能,并且您希望如果是attribB,则不会。