Console中的智能用户输入处理

时间:2011-11-21 15:33:45

标签: c# console

我必须: 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 个答案:

答案 0 :(得分:1)

while (true)
{
     Console.WriteLine(message);
     var line = Console.ReadLine();
     if (line == "") break;
     else DoStuff();
}

答案 1 :(得分:0)

创建延迟评估IEnumerable<string>(假设我可以从下面的示例中的方法IEnumerable获取此ReadAllLines),这将返回从控制台读取的行。然后你可以用LINQ做这样的事情:

var lines = ReadAllLines()
                .TakeWhile(line => line != "");
foreach (var line in lines) DoStuff();