提取唯一值的一种解决方案是将Array[i].Distinct()
应用于每一行,然后形成每行中所有唯一元素的列表。然后我们可以重复此列表List.Distinct()
。
但是如何从T[] UniqueValues
创建T[][] Data
更有效?感谢
答案 0 :(得分:2)
var distinct = array.SelectMany(a => a).Distinct().ToArray();
这简单地将嵌套数组展平为一个序列,并调用Distinct
来查找不同的元素。对ToArray
的调用可能有些低效,因为事先不知道不同序列的长度。如果只有少量不同的元素,这不太可能成为问题。
如果您有一个大型输入数组,复制元素可能会更快,将元素复制到一个新数组中,执行基数排序,然后在跳过相同元素的同时迭代排序数组。