我必须: 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()语句)。
你对如何完成这项任务有任何明智的想法吗?
答案 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();