c# - 根据 id 将对象列表从一个列表复制到另一个列表

标签 c# list foreach lambda

基本上我有两个对象列表。我需要做一些事情,比如根据列表之间匹配的 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/

相关文章:

c# - 在 C# 和 Ffmpeg 之间创建管道

c# - LINQ:通过使它们可转换/可比较来对不同类型的集合使用 .Except()?

c# - "Suppress JIT optimization on module load"调试选项有什么作用?

ios - 获取所有 ios 应用程序的全局列表

c# - 散布一个列表<>

php - 为什么我的变量在 TCPDF 中未定义?

php - 在 mysql select foreach 之后更新行

c# - LINQ 与常规枚举

python - Python 3.4 中的类对象数组

powershell - 将固定宽度的 txt 文件转换为 CSV/set-content 或 out-file -append?