C# - Цикл ввода до EOF

Это мой код для циклического ввода до eof:

string input;
List<string> s = new List<string>();
while((input = Console.ReadLine()) != null && input != ""){
   input = Console.ReadLine();
   s.Add(input);

}

foreach(string h in s){
   Console.WriteLine(h);
}

Входные данные продолжают циклически повторять каждую строку, пока я не нажму 'ctrl-z'. Каждый вход назначен в список s, но, похоже, не все входы назначены в список s.

выход:

Выход должен быть:

б

с

d

Спасибо за помощь;

2 ответа

Решение

Ты звонил Console.ReadLine() дважды за каждый цикл. Простое решение - удалить второй звонок.

string input;
List<string> s = new List<string>();
while((input = Console.ReadLine()) != null && input != ""){
   s.Add(input);
}

foreach(string h in s){
   Console.WriteLine(h);
}

Вы также можете написать оператор while следующим образом:

while (!string.IsNullOrEmpty(input = Console.ReadLine())){
        s.Add(input);
    }

Удаление второго вызова readLine должно быть достаточно.

Другие вопросы по тегам