2017-08-01 25 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}是说 “插入第三个参数到这里”。但你真的想要通过第二。