簡體   English   中英

在C#中對2個數組進行反向排序

[英]Sort 2 Arrays in Reverse in C#

我正在一個項目中,我需要接收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

請注意...輸入過程中的數字將全部為隨機數字,而不是按順序排列...

您可以使用Array.Revers方法反轉數組。

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

LINQ也可以使用,並且可以讓您完全跳過Array.Sort:

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

您可以使用任何比較排序算法對數字數組進行降序排序。
排序時,需要對字符串數組進行相同的元素重排。
您是否正在尋找執行以上操作的代碼?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM