2016-01-12 107 views
0

我想讓用戶連續添加一個鍵和一個值分隔字典的空間,允許用戶完成輸入密鑰的選項並在輸入空白行時退出。輸入值並退出,如果一個空行已被輸入

因此,例如,這是有效輸入:

test-string 12345 
hello world 

如果用戶輸入只有一行,然後一個空行,然後它仍然顯示是無效的輸入已經進入我的代碼工作但罰款:

Console.WriteLine("Parameters separated by a space (NAME - VALUE). A blank line ends input."); 
var parameters = new Dictionary<string, string>(); 

while (Console.ReadLine() != String.Empty) 
{ 
    string input = Console.ReadLine(); 
    string[] splitInput = input.Split(' '); 

    if (splitInput.Count() < 2) 
    { 
     Console.WriteLine("Invalid input."); 
    } 
    else 
    { 
     parameters.Add(splitInput[0], splitInput[1]); 
    } 
} 

我不知道它出錯的地方,我認爲這是與< 2,但我不知道如何檢查元素數量。我如何正確地允許輸入許多數值並在空白行上退出?

+2

使用調試器,你會很快看到你的邏輯出錯的地方 – MethodMan

+1

我建議你將'while'循環改爲'while(input = Console.ReadLine()!= String.Empty)'以避免跳過輸入。 – Tim

回答

0

你正在做while循環中的Console.ReadLine()。在那裏提供的任何空行然後在空間上分割,產生一個包含0個元素的字符串數組。然後立即被捕獲爲「輸入無效」。

相關問題