public static bool ContainExactFlagSet(this System.Enum obj, System.Enum flags) { var objFlags = obj.EnumerateSettedUpFlags().ToList(); var setFlags = flags.EnumerateSettedUpFlags().ToList(); if (objFlags.Count != setFlags.Count) { return(false); } foreach (var tmpFlag in objFlags) { if (!setFlags.Contains(tmpFlag)) { return(false); } } return(true); }