如何根据另一个数组对数组的元素进行排序(排名)?

Mda*_*nde 1 c# arrays sorting ranking

我的 C# 项目中必须具有相同索引的元素之间存在关系的数组:

简化示例如下:

Array_1 [0] =902;
Array_1 [1] =109;
Array_1 [2] =205;
Array_1 [3] =187;
Array_1 [4] =440;
Array_1 [5] =508;


Array_2 [0] ="Ford";
Array_2 [1] ="Opel";
Array_2 [2] ="Kia";
Array_2 [3] ="Renault";
Array_2 [4] ="BMW";
Array_2 [5] ="Toyota";
Run Code Online (Sandbox Code Playgroud)

我必须根据Array_1的值排名(从低到高)对Array-2进行排序。结果将写入Array_2_sorted。这意味着: Array_1 的最低值是 Array_1[1] (109) --> 所以 Array_2[1] (Opel) 应该是 Array_2_sorted[0]

下一个更高的值是 Array_1[3] (187) --> 所以 Array_2[3] (Renault) 应该是 Array_2_sorted[1]

下一个更高的值是 Array_1[2] (205) --> 所以 Array_2[2] (Kia) 应该是 Array_2_sorted[2]

下一个更高的值是 Array_1[4] (440) --> 所以 Array_2[4] (BMW) 应该是 Array_2_sorted[3]

...

如何在 C# 中对数组进行这样的排序(排名)?

Ran*_*dom 6

Array.Sort提供这样的功能。

https://learn.microsoft.com/en-us/dotnet/api/system.array.sort?view=net-7.0#system-array-sort(system-array-system-array)

使用每个键的 IComparable 实现,基于第一个 Array 中的键对一对一维 Array 对象(一个包含键,另一个包含相应的项)进行排序。

所以只需调用

Array.Sort(Array_1, Array_2);
Run Code Online (Sandbox Code Playgroud)

看这里:

https://dotnetfiddle.net/mKIM7o

  • 呵呵,你每天都学到新东西......真好! (3认同)