.net 条件逻辑情况(x ==(a||B))[副本]

vyswwuz2  于 2023-05-02  发布在  .NET
关注(0)|答案(1)|浏览(89)

此问题已在此处有答案

if statements matching multiple values(16个答案)
5天前关闭。
是不是有一种方法可以实现以下几点。net6:

if (x != (a || b)) { Do something }

ab不是布尔值时?
具体来说,当xab是枚举或数值时,如下所示:

enum Animal : byte {
    Cat,
    Dog,
    Cow,
    Dolphin,
    Horse,
    Whale   
}

稍后我们要评估变量的状态,假设用户必须做出选择:

if (choice == (Animal.Dolphin || Animal.Whale)) {
        Console.WriteLine("Lives in the sea");
    }

我知道这可以通过switch语句来实现,但我想知道是否有一种方法可以更紧凑地实现,比如在if语句中使用多个可选比较。

tvokkenx

tvokkenx1#

您可以使用is operator进行模式匹配:

if (choice is Animal.Dolphin or Animal.Whale)
{
    // ...
}

它还支持否定模式(C# 9):

if (choice is not (Animal.Dolphin or Animal.Whale))
{
    // ...
}

相关问题