我的问题很简单。
有短手吗
if (a == "p" || a == "l" || a == "g" || a == "z")
{
//do something
}
是否有替代方案。意思是,我可以做类似的事情吗
if (a == ("p" || "l" || "g" || "z"))
//这不起作用
我的问题很简单。
有短手吗
if (a == "p" || a == "l" || a == "g" || a == "z")
{
//do something
}
是否有替代方案。意思是,我可以做类似的事情吗
if (a == ("p" || "l" || "g" || "z"))
//这不起作用
if (new[] { "p", "l", "g", "z" }.Contains(a))
如果性能可能是一个问题,例如您有大量字符串要检查,或者经常检查,您应该考虑将它们存储在 a 中HashSet<string>
,例如
var mySet = new HashSet<string> { "p", "l", "g", "z" };
// later...
if (mySet.Contains(a))
Arrays.asList(new String[]{"a","b","c"}).contains("b");
您可以将 switch 语句与fall thru 一起使用:
switch (a) {
case "p":
case "l":
case "g":
case "z":
// do something
}
如果您编写一个扩展方法,例如:
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");
}
C# 代码
var myList = new[] { "p", "l", "g", "z" };
if(myList.Contains(a))
{
//victory :)
}