首页 > 解决方案 > 基于它们包含的唯一数字集的整数分区列表

问题描述

我有一个整数列表列表,例如-

List<List<int>> dataList = new List<List<int>> {
                new List<int>{ 0, 2, 4, 7 },
                new List<int>{ 1, 6, 3 },
                new List<int>{ 2, 0, 7, 9 },
                new List<int>{ 3, 1, 6 },
                new List<int>{ 4, 0, 2 },
                new List<int>{ 5, 2, 7 },
            };

我想合并所有具有重复项的列表并生成一个整数列表列表,其中任何列表中都不应有任何值。

输出应该是——

0、2、4、5、7、9

1、3、6

标签: c#linqmergeduplicatesset-theory

解决方案


如果你想要一个列表,那么你可以这样做:

// flatten your list:
var newList = new List<int>();
foreach (var list in output) {
  newList.AddRange(list);
}
// make sure every number is only once in that list:
newList.Distinct() // here is linq!
var output = new List<List<int>>();
output.Add(newList);

推荐阅读