[英]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.