2 回答
TA贡献1829条经验 获得超4个赞
你不可以做这个。
通常在if
语句中检查布尔类型。
所以 if(str == "a")
这会检查str == "a"
并返回true
或false
基于 的值str
。
但是当你在做
if(str == "a" || "b" || "c" || "d")
你实际上在做什么 if( (str == "a") || ("b") || ("c") || ("d") )
在这条指令中,第一部分是返回布尔值,但其他部分不返回布尔值,这对if
语句无效。
同样的方式你也不能跟随。
int a = 5, b = 6, c = 7; if(a == b == c) //This is not valid statement { }
这将是
((a == b) == c)
,(a == b)
结果为true
或false
。所以在第二部分检查将是,
(true/false == c)
, 这里你不能比较 Boolean 和 int 并且不能提供布尔结果。
我想做一些类似于 if(str == "a" || "b" || "c" || "d") 或 if (str in {"a", "b", "c", "d"})
正如我们所见,我们做不到if(str == "a" || "b" || "c" || "d")
。
但是,如果您可以自由拥有一个List of strings
确实携带所有字符串元素的。您需要创建一个类级别(全局)列表并检查是否有条件,您可以执行以下操作。
让我们说listOfElements
你有这样的清单。
if(listOfElements.Contains(str))
TA贡献1784条经验 获得超9个赞
有否提供这样的语法。这是对您的要求的简单回答。
或者
您可以按照Dmitry Bychenko在评论中的建议进行操作。
if (new [] {"a", "b", "c", "b"}.Contains(str)) { ... }
- 2 回答
- 0 关注
- 121 浏览
添加回答
举报