如果您的问题是“我有一个枚举类型,enum MyEnum { OneEnumMember, OtherEnumMember }
并且我想要一个函数来告诉这个枚举类型是否包含具有特定名称的成员,那么您正在寻找的是System.Enum.IsDefined
方法:
Enum.IsDefined(typeof(MyEnum), MyEnum.OneEnumMember); //returns true
Enum.IsDefined(typeof(MyEnum), "OtherEnumMember"); //returns true
Enum.IsDefined(typeof(MyEnum), "SomethingDifferent"); //returns false
如果您的问题类似于“我有一个枚举类型的实例,它具有Flags
属性,并且我想要一个函数来告诉该实例是否包含特定的枚举值,那么该函数看起来像这样:
public static bool ContainsValue<TEnum>(this TEnum e, TEnum val) where Enum: struct, IComparable, IFormattable, IConvertible
{
if (!e.GetType().IsEnum)
throw new ArgumentException("The type TEnum must be an enum type.", nameof(TEnum));
dynamic val1 = e, val2 = val;
return (val1 | val2) == val1;
}
希望我能帮上忙。