あなたの質問が「私は列挙型を持っています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;
}
私が助けることができることを願っています。