加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:20:38 所属栏目:百科 来源:网络整理
导读:我有两个List T对象: 例如: 清单1: ID,填充Id的值,值为空,包含1到10的ID. 1,“” 2,“” … 10,“” 清单2: ID,值和其他属性都填充了值,但此列表在ID方面是List 1的子集. (例如只有3项) 2,67 4,90 5,98 我想要的是合并列表1,但具有更新的值.有没有人有任
我有两个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);
    }

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读