我正在寻找包含多个表达式的if
条件的简短编码样式。
我们假设,我想在字符串变量名if
中添加str
条件。
这是我的if
条件。
if(str == "a" || str == "b" || str == "c" || str == "d")
我想让这个if
条件简短。
if(str == "a" || "b" || "c" || "d")
或
if (str in {"a", "b", "c", "d"})
我不必一次又一次地放置str ==
。
我知道,我可以用多种方式做到这一点:
我想做一些类似于if(str == "a" || "b" || "c" || "d")
或if (str in {"a", "b", "c", "d"})
感谢您的帮助!
答案 0 :(得分:1)
NO 此类语法可用。这是您要求的简单答案。
OR
您可以关注评论中建议的 Dmitry Bychenko 。
if (new [] {"a", "b", "c", "b"}.Contains(str)) { ... }
检查这些以获取更多详细信息:
答案 1 :(得分:1)
你不能这样做。
通常在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))