说我有下面的枚举
[Flags]
enum Letters
{
A = 1,
B = 2,
C = 4,
D = 8,
E = 16,
F = 32,
AB = A | B,
All = A | B | C,
}
如果我有变量:
var s = Letters.A | Letters.B | Letters.D;
var p = Letters.A | Letters.C | Letters.D | Letters.E;
我想要获得这两个枚举之间的公共值,因此在这种情况下应为
A | D
。有人可以告诉我如何实现这一目标。谢谢
最佳答案
您可以使用二进制&(和)运算符获取该信息:
var s = Letters.A | Letters.B | Letters.D;
var p = Letters.A | Letters.C | Letters.D | Letters.E;
var sAndp = s & p; // This will give you only the common values ( A & D)
关于c# - 在C#中获取通用标志枚举值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51975514/