我有两个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); }
如果你在谈论一个对象的属性,它会更棘手,但仍然可行.