我正在设置一个菜单系统,要求用户从列表中选择一个广播电台,为了便于使用,我希望该列表位于名为StationList的文件中。这一点都已排序,但我对选择过程有疑问。
有没有办法让case语句参考StationList用于有效案例而不必手动输入全部?我已经环顾四周,似乎没有立即回答:请记住,虽然我已经学习了两个星期了:))
提前致谢!
示例:
i = (an element from iterating through StationList)
switch (selection)
{
case (i):
i = (int)Choice.GoodChoice;
Console.WriteLine("You chose " + selection + " radio!");
break;
case "!exit":
case "!!":
i = (int)Choice.ExitChoice;
break;
case "!info":
TitleScreen();
Console.ForegroundColor = ConsoleColor.Green;
break;
default:
Console.WriteLine("Invalid selection! Please try again!");
break;
}
答案 0 :(得分:1)
这是不可能的。
如果 可能发生的事件,想象一下您自动切换了案例 - 您将如何定义每个case
中的内容?
编辑:
您只需要能够检查选择是否是列表中的一个字符串。所以你基本上需要(1)将所有字符串添加到HashSet
,(2)您的代码将是这样的:
HashSet hashset = new HashSet();
using (var file = new StreamReader(path))
{
string line;
while ((line = file.ReadLine()) != null)
hashset.Add(line);
}
// ...
if (hashset.Contains(selection))
{
i = (int)Choice.GoodChoice;
Console.WriteLine("You chose " + selection + " radio!");
}
else
{
switch (selection)
{
case "!exit":
case "!!":
i = (int)Choice.ExitChoice;
break;
case "!info":
TitleScreen();
Console.ForegroundColor = ConsoleColor.Green;
break;
default:
Console.WriteLine("Invalid selection! Please try again!");
break;
}
}