2011-11-21 83 views
0

我必须: 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(消息) ;“在这个例子中)。我已经尝试了do {..} while(..)循环但没有成功(重复Console.ReadLine()语句)。

你有什么聪明的想法如何完成这项任务?

回答

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

可以使用无限循环和休息吗?我被教导说这是“不良编码”。 – SuperUser

+0

国际海事组织,这是确定的,因为C#没有任何更适合的结构。我宁愿'while(true)'而不是移动一些条件并因此复制它。我认为这个主题很主观。 – Snowbear

0

创建懒洋洋地评估IEnumerable<string>(比方说,我能得到这个IEnumerable从方法ReadAllLines在下面样品)将返回线从控制台读取。那么你可以用LINQ做这样的事情:

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