列表的两个列表之间的联合

问题描述 投票:-1回答:1

我有两个List<List<int>>类型的列表。我想两个将这两个列表合并为一个列表,但不要重复。我尝试使用并集函数,但没有运气!我已经感谢所有答案

c# list duplicates combinations union
1个回答
0
投票

这个想法是创建一个代表最终结果的新对象;

List<List<int>> listlist1 = new List<List<int>>();
List<List<int>> listlist2 = new List<List<int>>();

List<List<int>> result = new List<List<int>>();
foreach(List<int> list in listlist1){if(!result.Contains(list)){result.Add(list);}
foreach(List<int> list in listlist2){if(!result.Contains(list)){result.Add(list);}

0
投票

您应该可以通过将SelectMany linq扩展方法与UnionDistinct扩展方法相结合来做到这一点。

示例:

List<List<int>> list1 = new List<List<int>>(new[] { new List<int>(new[] { 1, 2, 3, 4 }) });
List<List<int>> list2 = new List<List<int>>(new[] { new List<int>(new[] { 4, 5, 6 }) });
List<int> combined = list1.SelectMany(l => l).Union(list2.SelectMany(l => l)).Distinct().ToList();
© www.soinside.com 2019 - 2024. All rights reserved.