I\'ve got an Enum marked with the [Flags] attribute as follows:
[Flags]
public enum Tag : int
{
None = 0,
PrimaryNav = 1,
HideChildPages = 2,
You can do that by combining values with | and checking via &.
To check if the value contains either of the tags:
if ((myValue & (Tag.PrimaryNav | Tag.HomePage)) != 0) { ... }
The | combines the enums you're testing (bitwise) and the & tests via bitwise masking -- if the result isn't zero, it has at least one of them set.
If you want to test whether it has both of them set, you can do that as well:
Tag desiredValue = Tag.PrimaryNav | Tag.HomePage;
if ((myValue & desiredValue) == desiredValue) { ... }
Here we're masking off anything we don't care about, and testing that the resulting value equals what we do care about (we can't use != 0 like before because that would match either value and here we're interested in both).
Some links: