如何最简单地将两个列表 A 和 B 中的元素进行比较,并将 B 中存在但不在 A 中的元素添加到 A 中?
例如,假设有以下两个列表:
A = {1, 2, 3}
B = {3, 4, 5}
执行操作 A∪B 后,希望得到:
A = {1, 2, 3, 4, 5}
如何最简单地将两个列表 A 和 B 中的元素进行比较,并将 B 中存在但不在 A 中的元素添加到 A 中?
例如,假设有以下两个列表:
A = {1, 2, 3}
B = {3, 4, 5}
执行操作 A∪B 后,希望得到:
A = {1, 2, 3, 4, 5}
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};
listA.AddRange(listB); // listA now has elements of listB also.
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};
var listFinal = listA.Union(listB);
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};
var listFinal = listA.Concat(listB);
如果您需要常见的项目,可以使用Intersect。
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4};
var listFinal = listA.Intersect(listB); //3,4
我认为这就是你需要做的全部内容:
var listB = new List<int>{3, 4, 5};
var listA = new List<int>{1, 2, 3, 4, 5};
var listMerged = listA.Union(listB);
如果是两个IEnumerable列表,您不能使用AddRange
,但可以使用Concat
。
IEnumerable<int> first = new List<int>{1,1,2,3,5};
IEnumerable<int> second = new List<int>{8,13,21,34,55};
var allItems = first.Concat(second);
// 1,1,2,3,5,8,13,21,34,55