2017-08-01 24 views
0

我不得不練習在C#中製作一個小程序。 我必須輸入幾個名字,如果names.count == 1,那麼這隻能說明:使用列表<T> C#

"aName Liked post." 

if names.count ==2 then: 
"aName and bName liked post." 

if names.count > 2 then (for example count == 5): 

"aName, bName and 3 others liked post." 

其工作罰款> 2 == 1,但是當有2名即== 2,它拋出未處理的異常:

未處理的異常信息:System.FormatException:索引(從零開始) 必須比 參數列表的大小大於或等於零且小於

var names = new List<string>(); 

while (true) 
{ 
    Console.WriteLine("Enter name or hit ENTER to quit:"); 
    var input = Console.ReadLine(); 

    if (String.IsNullOrWhiteSpace(input)) 
    { 
     break; 
    } 

    names.Add(input); 

} 
if (names.Count > 2) 
{ 
    Console.WriteLine("{0},{1} and {2} others liked your post.",names[0], names[1], names.Count-2); 
} else if (names.Count == 2) 
{ 
    Console.WriteLine("{0} and {1} liked your post.", names[0], names[1]); 
} 
else if (names.Count == 1) 
{ 
    Console.WriteLine("{0} liked your post.", names[0]); 
} 

else 
{ 
    Console.WriteLine("No one liked"); 
} 
+5

'「{0}和{2}'Where is 1? – Gusman

+3

您可以簡單地查找String.Format並查看它爲什麼會引發FormatException。或者您可以讀取錯誤消息。 – pm100

+0

Console.WriteLine(」{0} and {0},名稱[1]); 正確: Console.WriteLine(「{0}和{1}喜歡你的帖子」,名稱[0],名稱[ 1]); 我一直在爲它奮鬥約30分鐘。非常感謝你的時間 – nomeepk

回答

3

變化

Console.WriteLine("{0} and {2} liked your post.", names[0], names[1]); 

Console.WriteLine("{0} and {1} liked your post.", names[0], names[1]); 

{2}是說 「插入第三個參數到這裏」。但你真的想要通過第二。