2011-11-21 89 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();