2016-10-03 1 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 [п ameCnt] = Convert.ToString (inValue); 'если эта переменная никогда не изменяет свое значение в вашем foreach –

ответ

0

Заблуждение в том, что если вы вводите четыре фамилии переменной nameCnt = 4 в вашем Еогеаспе в положении 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

Нет проблем. Я новичок на сайте. –

Смежные вопросы