在C#中反向排序2个数组

时间:2015-06-21 18:23:48

标签: c# arrays sorting

我正在开发一个项目,我需要接收2个数组,并按顺序打印出来。

这就是我现在所拥有的:

    string[] nPlayer = {"aaa", "bbb", "ccc", "ddd", "eee"}
    int[] nScore = {555, 444, 333, 222, 111} 

    public void Print()
    {
        Array.Sort(nScore, nPlayer);
        PrintKeysAndValues(nPlayer, nScore);
    }

    public static void PrintKeysAndValues(String[] myKeys, int[] myValues)
    {
        for (int i = 0; i < myKeys.Length; i++)
        {
            Console.WriteLine("{0}\t{1}", myKeys[i], myValues[i]);
        }
    }

我得到的输出是:(按数字排序)

eee    111
ddd    222
ccc    333
bbb    444
aaa    555

我需要让它以相反的方式显示(按数字排序)

aaa    555
bbb    444
ccc    333
ddd    222
eee    111

只是一个注释......输入过程中的数字都是随机的而不是按顺序...

3 个答案:

答案 0 :(得分:1)

您可以使用Array.Revers方法反转数组。

    public void Print()
    {
        Array.Sort(nScore, nPlayer);
        Array.Reverse(nScore);
        Array.Reverse(nPlayer);
        PrintKeysAndValues(nPlayer, nScore);
    }

答案 1 :(得分:1)

LINQ也可以,你可以完全跳过Array.Sort:

nScore = nScore.OrderByDescending(c => c).ToArray();
nPlayer = nPlayter.OrderByDescending(c => c).ToArray();
PrintKeysAndValues(nPlayer, nScore);

答案 2 :(得分:0)

您可以使用任何比较排序算法按降序对数字数组进行排序 在排序时,需要对字符串数组进行相同的元素重新排列 您是否在寻找代码来执行上述操作?