2016-10-03 147 views
0

我有一个问题,按字母顺序显示名称,反之亦然。当我使用Array.Sort()时,它首先显示最后一个条目,然后按字母顺序排序。任何帮助,建议将不胜感激。下面是我的代码:使用Array.Sort()和Array.Reverse()排序阵列升序和降序

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(); 
    } 
+0

什么目的,可以使用'lastName的[N ameCnt] = Convert.ToString(inValue);'如果该变量永远不会在您的foreach中更改它的值 –

回答

0

的误解是,如果你在你的安排的4位置进入最后四个名字在你的foreach 可变nameCnt = 4你输入你在变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(); 
     } 
+0

非常感谢! –

+0

如果您可以通过给予支票错过回应 –

+0

帮助投票没问题。我是新来的网站。 –

相关问题