objA = new obj()
{
ID = 123,
attriA = "",
attriB = "someValueB"
}
objB = new obj()
{
ID = 123,
attriA = "someValueA",
attriB = ""
}
List<obj> ListA = new List<obj>();
ListA.add(objA);
List<obj> ListB = new List<obj>();
ListB.add(objB);
在上述情况下,我需要listC
使用以下对象:
objC = new obj()
{
ID = 123,
attriA = "someValueA",
attriB = "someBalueB"
}
这就是我尝试过的。它起作用了,但是我想必须使用linQ来缩短代码,我不知道:
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
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;
};
上面的代码未经测试
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句