我不得不: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();