2

提取唯一值的一种解决方案是应用于Array[i].Distinct()每一行,然后形成每行中所有唯一元素的列表。然后我们可以重复这个列表List.Distinct()

但是有没有更有效的方法来创建T[] UniqueValuesT[][] Data?谢谢

4

1 回答 1

2
var distinct = array.SelectMany(a => a).Distinct().ToArray();

这只是将嵌套数组展平为一个序列并调用Distinct以查找不同的元素。ToArray由于事先不知道不同序列的长度,因此调用可能会有些低效。如果只有少量不同的元素,这不太可能成为问题。

如果你有一个大的输入数组,复制元素可能会更快,将元素复制到一个新数组中,执行基数排序,然后遍历排序后的数组,同时跳过相等的元素。

于 2013-04-04T17:47:05.843 回答