基本上我有两个对象列表。我需要做一些事情,比如根据列表之间匹配的 id 属性从第二个列表更新第一个列表。如何在不使用 foreach
循环的情况下实现这一目标。
public class Test1
{
int Id;
List<Test2> Test2Values;
}
public class Test2
{
int Test1Id;
string valueString;
}
public class Main
{
public void Test()
{
List<Test1> testList1 = GetTest1();
List<Test2> testList2 = GetTest2();
foreach(Test1 t in testList1)
t.Test2Values = testList2.Where(tl => tl.Test1Id == t.Id).ToList();
}
}
最佳答案
使用以下代码获取两个列表之间的共同项目,然后处理下一个:
var result = testList1.Where(p => testList2.Any(p2 => p2.Id == p.Id));
关于c# - 根据 id 将对象列表从一个列表复制到另一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32365988/