在C#中合并和更新两个列表

前端之家收集整理的这篇文章主要介绍了在C#中合并和更新两个列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个List< T>对象:

例如:

清单1:
ID,填充Id的值,值为空,包含1到10的ID.
1,“”
2,“”

10,“”

清单2:
ID,值和其他属性都填充了值,但此列表在ID方面是List 1的子集. (例如只有3项)
2,67
4,90
5,98

我想要的是合并列表1,但具有更新的值.有没有人有任何好的扩展方法可以执行此操作或执行此操作的任何elegent代码.最终的清单应该是:

ID,价值
1,“”
列表2中的值为2,67 //
3,“”
4,98
6 “”

10,“”

解决方法

我可能会使用字典而不是列表:
// sample data
    var original = new Dictionary<int,int?>();
    for (int i = 1; i <= 10; i++)
    {
        original.Add(i,null);
    }
    var updated = new Dictionary<int,int>();
    updated.Add(2,67);
    updated.Add(4,90);
    updated.Add(5,98);
    updated.Add(11,20); // add

    // merge
    foreach (var pair in updated)
    {
        original[pair.Key] = pair.Value;
    }

    // show results
    foreach (var pair in original.OrderBy(x => x.Key))
    {
        Console.WriteLine(pair.Key + ": " + pair.Value);
    }

如果你在谈论一个对象的属性,它会更棘手,但仍然可行.

猜你在找的C#相关文章