我希望能够确定枚举值是否属于某个组。请参见伪示例:
[Flags]
public enum Animals
{
Dog = 1,
Cat = 2,
WildAnimal = Dog | Cat,
Fly = 4,
Bee = 8,
Insect = Fly | Bee
}
public static bool IsInsect(Animals animals)
{
return Animals.Insect.Qualifies(animals);
}
public static bool Qualifies(this Animals groupName, Animals value)
{
//Is there a bitwise operation for it?
}
答案 0 :(得分:7)
在枚举上使用HasFlag
方法。
http://msdn.microsoft.com/en-us/library/system.enum.hasflag.aspx
答案 1 :(得分:2)
if ((groupName & value) != 0)
...
答案 2 :(得分:0)
使用“和”并检查公共位:
return (groupName & value) > 0;
答案 3 :(得分:0)
从每个枚举中放置描述属性或自定义属性,然后从反射中获取该信息。我在我的博客上提供了一个使用枚举的例子:
C# Using Extended Attribute Information on Objects
HTH