是否有可能以某种方式将多个变量与if语句中的一个常量进行比较?如果不是
,那将非常有帮助if ( col.Name != "Organization" && col.Name != "Contacts" && col.Name != "Orders" ) { }
我可以说
if ( col.Name != "Organization" || "Contacts" || "Orders" ) { }
我知道我可以使用列表但在某些情况下我不想...谢谢!
答案 0 :(得分:5)
switch语句与你会得到的一样好。
switch (col.Name)
{
case "Organization":
case "Contacts":
case "Orders":
break;
default:
break;
}
答案 1 :(得分:5)
如果您只是在寻找捷径,那么您可能不会得到太多。 ChaosPandion提到了switch语句,这里有一些使用数组的东西。
if (new string[] { "Bar", "Baz", "Blah" }.Contains(foo))
{
// do something
}
答案 2 :(得分:1)
您还可以向字符串类添加扩展方法,以使您的比较更简洁。我会选择安东尼提供的解决方案并将其粘贴在一个名为EqualsAny的扩展方法中。或者其他一些方法。
答案 3 :(得分:1)
我第二次约翰对扩展方法的评论。我会做这样的事情:
public static class StringExtensions
{
public static bool In(this string input, params string[] test)
{
foreach (var item in test)
if (item.CompareTo(input) == 0)
return true;
return false;
}
}
然后你可以这样称呼它:
string hi = "foo";
if (hi.In("foo", "bar")) {
// Do stuff
}