c# 检查枚举是否包含在选项中
c# check enum is contained in options
我正在尝试检查可用选项中是否包含枚举选项。
用英语解释对我来说有点困难。
这是代码:
public enum Fruits
{
Apple,
Orange,
Grape,
Ananas,
Banana
}
var available = Fruits.Apple | Fruits.Orange | Fruits.Banana;
var me = Fruits.Orange;
我正在尝试检查 me 变量是否包含在 available 变量中。
我知道它可以完成,因为它也与 RegexOptions 一起使用。
最简单的方法是使用&
:
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>
或类似的方式来存储可用选项。
我正在尝试检查可用选项中是否包含枚举选项。 用英语解释对我来说有点困难。 这是代码:
public enum Fruits
{
Apple,
Orange,
Grape,
Ananas,
Banana
}
var available = Fruits.Apple | Fruits.Orange | Fruits.Banana;
var me = Fruits.Orange;
我正在尝试检查 me 变量是否包含在 available 变量中。 我知道它可以完成,因为它也与 RegexOptions 一起使用。
最简单的方法是使用&
:
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>
或类似的方式来存储可用选项。