我有两个List<List<int>>
类型的列表。我想两个将这两个列表合并为一个列表,但不要重复。我尝试使用并集函数,但没有运气!我已经感谢所有答案
这个想法是创建一个代表最终结果的新对象;
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);}
您应该可以通过将SelectMany
linq扩展方法与Union
和Distinct
扩展方法相结合来做到这一点。
示例:
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();