我需要检查某个值是否不是一个或另一个,并且我想将
or
与模式匹配一起使用。 “前进” - x is a or b
很简单:
int GetInt() => 3;
if (GetInt() is 3 or 4)
{
Console.WriteLine("3 or 4");
}
但否定我无法弄清楚。我试过:
if (GetInt() is not 4 or 3)
{
Console.WriteLine("not 3 or 4 #1");
}
else
{
Console.WriteLine("Succcess");
}
或者
if (GetInt() is not 3 or not 4)
{
Console.WriteLine("not 3 or 4 #2");
}
else
{
Console.WriteLine("Succcess");
}
但是两者都打印第一个语句(
not 3 or 4...
)。
IDE 还将代码的不同部分灰显:
和
您可以只使用括号:
if (GetInt() is not (3 or 4))
{
Console.WriteLine("not 3 or 4 #2");
}
else
{
Console.WriteLine("Success");
}
演示 @sharplab.io