我的问题非常简单。
是否有一个简短的手
if (a == "p" || a == "l" || a == "g" || a == "z")
{
//do something
}
是否有替代品。意思是,我可以做一些像
这样的事情 if (a == ("p" || "l" || "g" || "z"))
//这不起作用
答案 0 :(得分:5)
if (new[] { "p", "l", "g", "z" }.Contains(a))
如果性能可能是一个问题,例如如果要检查或检查频繁的字符串列表,则应考虑将它们存储在HashSet<string>
中,例如
var mySet = new HashSet<string> { "p", "l", "g", "z" };
// later...
if (mySet.Contains(a))
答案 1 :(得分:1)
Arrays.asList(new String[]{"a","b","c"}).contains("b");
答案 2 :(得分:1)
C#代码
var myList = new[] { "p", "l", "g", "z" };
if(myList.Contains(a))
{
//victory :)
}
答案 3 :(得分:1)
您可以使用带有fall thru的开关语句:
switch (a) {
case "p":
case "l":
case "g":
case "z":
// do something
}
答案 4 :(得分:1)
如果你编写一个扩展方法,那就更好了:
public static class MyExtension
{
public static bool In(this string c, params string[] items)
{
return items.Contains(c);
//OR //return items.Any(r => r == c);
}
}
然后像:
一样使用它if ("a".In("p", "l", "a", "z"))
{
Console.WriteLine("Exists");
}
else
{
Console.WriteLine("Doesn't exist");
}