SP1*_*SP1 1 c# enums enum-flags
说我有以下枚举
[Flags]
enum Letters
{
A = 1,
B = 2,
C = 4,
D = 8,
E = 16,
F = 32,
AB = A | B,
All = A | B | C,
}
Run Code Online (Sandbox Code Playgroud)
如果我有变量:
var s = Letters.A | Letters.B | Letters.D;
var p = Letters.A | Letters.C | Letters.D | Letters.E;
Run Code Online (Sandbox Code Playgroud)
我想要的是获得这两个枚举之间的共同值,所以在这种情况下它应该是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)
Run Code Online (Sandbox Code Playgroud)