我正在努力做一个非常简单的文化,像这样检查
if(culture.ToUpper() == "ES-ES" || "IT-IT")
{
//do something
}
else
{
//do some other thing
}
因为你不能使用||在这种情况下,除了else if语句之外,还有另一种简短方法吗?
答案 0 :(得分:11)
最好的方法是定义一个扩展方法,在这里抽象出比较并让它通过params
数组获取所有值
static bool EqualsAny(this string str, params string[] args) {
foreach (var arg in args) {
if (StringComparer.InvariantCultureIgnoreCase.Equals(arg, str)) {
return true;
}
}
}
然后你可以做以下
if (culture.EqualsAny("ES-ES", "IT-IT")) {
...
} else {
...
}
答案 1 :(得分:4)
这不是有效的语法。像这样改写:
if(culture.ToUpper() == "ES-ES" || culture.ToUpper() == "IT-IT")
答案 2 :(得分:3)
最简单的一个:
if(culture.ToUpper() == "ES-ES" || culture.ToUpper() == "IT-IT")
{
//do something
}
else
{
//do some other thing
}
我将使用:
if((new [] { "ES-ES", "IT-IT" }).Contains(culture.ToUpper()))
{
//do something
}
else
{
//do some other thing
}