我们有一个数据库,其中一列包含复合枚举整数值。我们需要去除特定枚举整数值的所有这些值(如果它们有),但保留其余部分。
[Flags]
public enum MyEnum
{
Enum1 = 1,
Enum2 = 2,
Enum3 = 4,
Enum4 = 8,
}
在数据库中我们发现
Row MyEnumSettings
1 3 (Enum1 | Enum2)
2 8 (Enum4)
3 6 (Enum2 | Enum3)
4 14 (Enum2 | Enum3 | Enum4)
我们想从每一行中删除 Enum3 并最终得到
Row MyEnumSettings
1 3 (no change)
2 8 (no chnage)
3 2 (removed Enum3)
4 10 (removed Enum3)
我们可以使用 Enum.IsDefined 来检查整数是否是枚举的一部分(不确定它是否适用于复合整数值..)。但是,我们如何检查给定的整数值是否包含枚举的特定部分?