Интеллектуальная обработка ввода пользователем в консоли - PullRequest
0 голосов
/ 21 ноября 2011

Мне необходимо: 1. Написать информацию пользователю.2. Прочитайте напечатанное сообщение.3. Если сообщение пустое, закройте приложение.

Очень просто просто прочитать пользовательский ввод следующим образом и обработать его:

    static void Main(string[] args)
    {
        string line;
        Console.WriteLine(message);

        while ((line = Console.ReadLine()).Length > 0)
        {
            // process line here and return output to console

            Console.WriteLine(message);
        }
    }

Но поскольку я пурист, я хочупропустить все повторяющиеся операторы (например, «Console.WriteLine (message);» в этом примере).Я уже пробовал цикл do {..} while (..) безуспешно (повторные операторы Console.ReadLine ()).

У вас есть какая-нибудь умная идея, как выполнить эту задачу?

Ответы [ 2 ]

1 голос
/ 21 ноября 2011
while (true)
{
     Console.WriteLine(message);
     var line = Console.ReadLine();
     if (line == "") break;
     else DoStuff();
}
0 голосов
/ 21 ноября 2011

Создать лениво оцененный IEnumerable<string> (допустим, я могу получить IEnumerable из метода ReadAllLines в примере ниже), который будет возвращать строки, прочитанные из консоли.Тогда вы можете сделать что-то подобное с LINQ:

var lines = ReadAllLines()
                .TakeWhile(line => line != "");
foreach (var line in lines) DoStuff();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...