簡體   English   中英

使用Array.Sort()和Array.Reverse()對數組進行升序和降序排序

[英]Sorting Arrays Ascending and Descending order using Array.Sort() and Array.Reverse()

我有一個問題,無法按字母順序顯示名稱,反之亦然。 當我使用Array.Sort()時,它將首先顯示最后一個條目,然后按字母順序進行排序。 任何幫助,建議將不勝感激。 下面是我的代碼:

static void Main(string[] args)
    {
       string [] lastName = new string [100];
       string inValue = "", moreData = "";
       int nameCnt = 0;



       while (moreData != "N")
       {
           lastName[nameCnt] = Convert.ToString(inValue);
           nameCnt++;
           Console.Write("Enter Last Name: ");
           inValue = Console.ReadLine();
           Console.Write("Keep going Y/N? ");
           moreData = Console.ReadLine();
           moreData = moreData.ToUpper();
       }
       Console.WriteLine();
       Console.WriteLine(nameCnt + " Last Name(s) Entered");

        Console.WriteLine();
        Console.WriteLine("Names in Ascending Order\n");


            Array.Sort(lastName);
            foreach (string name in lastName)
            {

                lastName[nameCnt] = Convert.ToString(inValue);
                Console.Write(name);
            }

            Console.WriteLine();
            Console.WriteLine("Names in Ascending Order\n");


            Array.Reverse(lastName);
            foreach (string name in lastName)
            {
                lastName[nameCnt] = Convert.ToString(inValue);
                Console.Write(name);
            }

        Console.ReadLine();
    }

誤解是,如果您在排列的位置4的foreach中輸入四個姓氏到Variable nameCnt = 4 ,您將輸入停留在Variable inValue的最后一個條目

     foreach (string name in lastName)
        {
             /* Asign position 4 to array inValue input 
             lastName[nameCnt] = Convert.ToString(inValue); */
            Console.WriteLine(name);
        }

刪除該行並在第一時間訂購

    while (moreData != "N")
        {
            Console.Write("Enter Last Name: ");
            inValue = Console.ReadLine();
            lastName[nameCnt] = Convert.ToString(inValue);
            nameCnt++;
            Console.Write("Keep going Y/N? ");
            moreData = Console.ReadLine().ToUpper();
        }

暫無
暫無

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

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