How to check if any flags of a flag combination are set?

c#, enums, flags

Solution

If you want to know if letter has any of the letters in AB you must use the AND `&` operator. Something like:

if ((letter & Letters.AB) != 0)
{
    // Some flag (A,B or both) is enabled
}
else
{
    // None of them are enabled
}

Problem

Let's say I have this enum: ``` [Flags] enum Letters { A = 1, B = 2, C = 4, AB = A | B, All = A | B | C, } ``` To check if for example `AB` is set I can do this: ``` if((letter & Letters.AB) == Letters.AB) ``` Is there a simpler way to check if any of the flags of a combined flag constant are set than the following? ``` if((letter & Letters.A) == Letters.A || (letter & Letters.B) == Letters.B) ``` Could one for example swap the `&` with something?

Original source

Related problems