【发布时间】:2018-05-05 20:02:12
【问题描述】:
这是一个奇怪的特殊情况,但我有 3 个数组,所有数组都具有灵活的大小(但相同)和贵重物品,我需要使用另外 2 个来订购其中一个。 比如
int[] array1 = new int[0 ,1 ,1 ,1 ,0];
int[] array2 = new int[5 ,3 ,4 ,2 ,0];
int[] array3 = new int[0 ,1 ,2 ,3 ,4];
// Results array3 == [2,1,3,0,4]
我想首先按第一个数组的值对第三个数组进行排序,并在第一个数组无法排序的情况下使用第二个数组。 有没有办法干净地做到这一点,还是我必须硬编码?
【问题讨论】:
-
如果可能的话,我建议您创建一个包含三个相关值的类并使用一个数组。像这样在单独的数组中包含相关值是一种常见的反模式。
-
创建一个包含 3 个 int 值的元组。然后使用自定义比较器
-
unity使用的c#版本不支持元组。
-
@Joska Unity 支持 C#6 的元组,您需要切换到 .NET 4.x 等效脚本运行时版本。
-
我试试看,谢谢