2
值的键如何排序基于存储在一个单独的阵列中的C#值如何排序基于存储在单独的阵列
例
int[] keys = new int[] {1, 2, 3, 4, 7};
double[] vals = new double[] {0.5, 0.2, 0.3, 0.1, 0.4};
我想排序键阵列的阵列键数组基于vals数组中的值即。得到以下顺序按键排列:
4, 2, 3, 7, 1
我尝试做以下
Array.Sort(keys, (a, b) => vals[a].CompareTo(vals[b]));
,但我得到了以下错误:
Additional information: Unable to sort because the IComparer.Compare() method returns inconsistent results. Either a value does not compare equal to itself, or one value repeatedly compared to another value yields different results. IComparer: 'System.Array+FunctorComparer`1[System.Int32]'.
我猜参数a和b指键值而不是键值数组中的键值。
感谢的答案,但它不正是我想要实现的。我更新了我的问题。这不仅仅是从1开始索引。这应该被理解为关键。对不起,这个误解,请看我更新的例子。 –
@SebastianWidz - 我的第一个答案在'keys'上可以很好地工作。 – Enigmativity