说我有下面的枚举

[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/

10-13 06:17