解决|| 检查字符串时的运算符

Sta*_*s_S 1 c# asp.net-mvc

我正在努力做一个非常简单的文化,就像这样

if(culture.ToUpper() == "ES-ES" || "IT-IT")
{
   //do something
}
else
{
  //do some other thing
}
Run Code Online (Sandbox Code Playgroud)

因为你不能使用|| 在这种情况下,除了else if语句之外,还有另一种简短方法吗?

Jar*_*Par 11

最好的方法是定义一个扩展方法,在这里抽象出比较并让它通过params数组获取所有值

static bool EqualsAny(this string str, params string[] args) { 
  foreach (var arg in args) { 
    if (StringComparer.InvariantCultureIgnoreCase.Equals(arg, str)) { 
      return true;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以做以下事情

if (culture.EqualsAny("ES-ES", "IT-IT")) { 
  ...
} else { 
  ...
}
Run Code Online (Sandbox Code Playgroud)