智能用户输入处理控制台



我不得不: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()语句)。

你有什么好主意来完成这项任务吗?
while (true)
{
     Console.WriteLine(message);
     var line = Console.ReadLine();
     if (line == "") break;
     else DoStuff();
}

创建延迟计算的IEnumerable<string>(假设我可以从下面示例中的ReadAllLines方法获得这个IEnumerable),它将返回从控制台读取的行。然后你可以用LINQ:

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

相关内容

  • 没有找到相关文章