c#check enum包含在选项中

时间:2017-06-27 08:37:50

标签: c# enums contains options

我试图检查可用选项中是否包含枚举选项。 我用英语解释它有点困难。 这是代码:

public enum Fruits
{
    Apple,
    Orange,
    Grape,
    Ananas,
    Banana
}


var available = Fruits.Apple | Fruits.Orange | Fruits.Banana;
var me = Fruits.Orange;

我试图检查 me varliable是否包含在可用变量中。 我知道它可以完成,因为它也与RegexOptions一起使用。

1 个答案:

答案 0 :(得分:9)

最简单的方法是使用&

if ((available & me) != 0)

你可以在这里使用0,因为从常量0到任何枚举的隐式转换,非常方便。

请注意,您的枚举应使用Flags属性和适当的面向位值来定义:

[Flags]
public enum Fruits
{
    Apple = 1 << 0,
    Orange = 1 << 1,
    Grape = 1 << 2,
    Ananas = 1 << 3,
    Banana = 1 << 4
}

如果您不想将其设为Flags枚举,则应使用List<Fruit>或类似内容存储可用选项。