假设我有一个枚举:
[Flags]
public enum Alpha
{
NULL = 0,
A0 = 1,
A1 = 2,
A2 = 4,
A3 = 8
}
我有以下内容:
Alpha selected = A0 | A1 | A2
Alpha compare = A1 | A3
我想检查是否有任何selected
标志也在compare
标志中。
到目前为止,我能想到的唯一方法是(伪代码)
foreach(Alpha flag in Enum.GetValues(typeof(Alpha)))
{
if (selected.HasFlag(flag) && compare.HasFlag(flag))
{
return true
}
}
return false
有没有更合乎逻辑的方法来做到这一点?