C#开关响应列表
所以我可能没有拼写这个问题,但我真的看不到其他解释我自己的方法 我的问题是:我们是否可以改变开关的大小写,以响应foreach循环中的列表之类的内容?如果不能,是否还有其他可行的方法 为了更清楚,我将举一个例子:C#开关响应列表,c#,switch-statement,C#,Switch Statement,所以我可能没有拼写这个问题,但我真的看不到其他解释我自己的方法 我的问题是:我们是否可以改变开关的大小写,以响应foreach循环中的列表之类的内容?如果不能,是否还有其他可行的方法 为了更清楚,我将举一个例子: List<string> strings = new List<string>(); //use foreach display all strings string Choice = Console.ReadLine(); switch(Choice) /*
List<string> strings = new List<string>();
//use foreach display all strings
string Choice = Console.ReadLine();
switch(Choice)
/* here instead of having static cases like
case "oneCase"
/do something
break;
*/
is it possible to have a
foreach(string str in strings)
{
case str:
//do something
break;
}
所以为了继续,我有一个列表,它不是一直都有相同的长度,所以我试图根据这个类来切换大量的案例
编辑4:我开始看字典,也看看这个问题:
感谢大家的帮助如果需要更多帮助,我会回来的如果您打算根据用户输入的值运行操作,您可以使用操作字典:
var d = new Dictionary<string, Action>();
d.Add("a", () => Console.WriteLine("You typed 'a'!");
if (d.TryGetValue(input, out Action action))
{
action();
}
如果您打算根据用户输入的值运行操作,则可以将字典用于操作:
var d = new Dictionary<string, Action>();
d.Add("a", () => Console.WriteLine("You typed 'a'!");
if (d.TryGetValue(input, out Action action))
{
action();
}
例如,您希望在开关中执行什么操作?您的
case
变量必须是编译时常量,因此不能。请使用foreach
。用选项填充字符串列表并在其上迭代。下面用字典注释更好。Switch不是合适的工具。我认为字典或类似的东西会更合适。如果你能准确地解释你想做什么-也许用一个小例子-我们将能够提供更好的帮助。例如,你想在切换中做什么?你的case
变量必须是编译时常数,所以不要。使用foreach
。用选项填充字符串列表并在其上迭代。下面用字典注释更好。Switch不是合适的工具。我认为字典或类似的东西更合适。如果你能准确地解释你想做什么——也许用一个小例子——我们就能更好地帮助你。
switch (input)
{
case "a":
Console.WriteLine("You typed 'a'!");
break;
}