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 关注
- 163 浏览
添加回答
举报
