【发布时间】:2019-06-08 01:57:50
【问题描述】:
这里我有 2 个相同对象类型的列表。
object = {id: xxx, ...} // attribute "id" is used to find the identical obj
List oldSet = [old1, old2, old3];
List newSet = [new2, new3, new4];
// old2 = {id= 2, result = 5, ...}
// new2 = {id= 2, result = 1, ...}
// expected result = {oldSet: old2; newSet: new2}
我想合并两个列表,同时保留它来自哪个列表的来源。
预期结果如下:
List mergedSet = [{old1, null}, {old2, new2}, {old3, new3}, {null, new4}];
我正在考虑使用 LINQ C#,但卡在某个地方。
请多多指教。
谢谢! :)
【问题讨论】:
-
听说过字典吗?还是多维数组?
-
mergedSet的Type是什么?是List<Tuple<Item, Item>>吗? -
我认为结果类型可以是可选的。只要我能分辨出这个项目来自 oldSet 或 newSet,并将具有相同 id 的项目组合起来。谢谢你的提示
-
如果您能提供minimal reproducible example,那就太好了。您的代码按原样无法编译。
-
您的问题中缺少以下详细信息以提供有用的答案:(1)
oldSet和newSet将具有相同顺序的项目,即如果项目的id在同一个索引中不匹配是否可以安全地假设该项目不存在于另一个列表中? (2)应该保持谁的顺序?即,如果两个列表的所有内容都不同,并且任何项目都没有单一匹配项,那么输出应该是什么?