using System;
using System.Collections.Generic;
namespace Program
{
class Pro
{
static void Main (string[] args)
{
var names = new List<string>();
var Line = Console.ReadLine().Split();
foreach (var item in Line)
{
names.Add(item);
}
switch (names.Count)
{
case 0:
Console.WriteLine();
break;
case 1:
Console.WriteLine(names[0] + "Likes your post");
break;
case 2:
Console.WriteLine(names[0] + "and" + names[1] + "Likes your post");
break;
default:
Console.WriteLine(names[0] + " and " + names[1] + " and "
+ (names.Count - 2)+"Likes your post");
break;
}
}
}
}
答案 0 :(得分:1)
如@ZorgoZ所述,您应该使用Split方法选项RemoveEmptyEntries
来删除空字符串。
类似这样的东西:
var line = Console.ReadLine().Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
使用此选项,您应该在switch语句中获得第一种情况。
您可以阅读有关String.Split Method here
的更多信息答案 1 :(得分:0)
我没有测试过您的代码,也没有遇到此特定问题。但是我的猜测是它将在您的列表中添加“”(空字符串)。我建议您在将每个条目添加到列表时将它们打印到控制台...只是为了查看它添加到列表中的内容。然后,如果要解决此问题,请确保通过将空字符串与“”进行比较来跳过带有空字符串的条目,并在发现空字符串的情况下跳过添加指令
让我知道怎么回事。