0

我正在设置一个菜单系统,要求用户从列表中选择一个广播电台,并且为了便于使用,我希望该列表位于一个名为 StationList 的文件中。那位已经排序了,但是我在选择过程中遇到了问题。

有没有办法让案例语句引用 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;
}
4

1 回答 1

1

这是不可能的。

如果可能话,想象一下你自动切换 case —— 你将如何定义在每个cases 中要做什么?

编辑:
您只需要能够检查选择是否是列表中的字符串之一。因此,您基本上需要(1)将所有字符串添加到 a 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;
    }
}
于 2010-11-10T00:32:39.840 回答