【发布时间】:2016-01-02 12:26:05
【问题描述】:
我有一个方法使用一长串 if/elseif 语句(大约 10 到 15 个),我知道当您超过大约 5 个 if/else if 语句时,最好使用 switch。话虽如此,我不确定是否可以在我的情况下使用 switch 语句,因为我的 if/else if 语句依赖于测试字符串,而不是为了相等,而是使用 Contains() 方法。所以,现在我有一些相当于
string s = "ABCD";
if(s.Contains("A")
{
//do stuff
}
else if(s.Contains("E")
{
//do different stuff
}
etc ...
我尝试了不同的方式来实现 switch 语句,例如
switch()
{
case(s.Contains("A"))
{
//do stuff
}
}
但我尝试过的每种方法都会导致语法错误。
有没有办法在使用 Contains() 方法测试字符串的同时使用 switch 语句?
【问题讨论】:
-
不,switch 语句需要 case 标签的常量值。
-
好的。我就是这么想的,但我想确定一下。谢谢!
-
@BrianH 您只想执行“命中”的第一个操作,还是字符串包含该子字符串的所有操作?
-
@Jonesopolis 只有 1 个子字符串适用。继续上面的示例,包含“A”的字符串永远不会包含“E”,反之亦然(也许我应该为上面构建一个更强大的示例)lol
标签: c# string switch-statement contains