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

时间:2013-12-17 21:00:59

标签: c# asp.net-mvc

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

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

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

3 个答案:

答案 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
}