diff --git a/CSUtilities/Extensions/EnumExtensions.cs b/CSUtilities/Extensions/EnumExtensions.cs index 1f75318..44d063c 100644 --- a/CSUtilities/Extensions/EnumExtensions.cs +++ b/CSUtilities/Extensions/EnumExtensions.cs @@ -26,6 +26,24 @@ public static T GetValueByName(string name) return Enum.GetValues(typeof(T)).Cast().FirstOrDefault(o => o.ToString() == name); } + /// + /// Adds a flag value to enum + /// + public static T AddFlag(this T value, T flag) + where T : Enum + { + return (T)(object)((int)(object)value | (int)(object)flag); + } + + /// + /// Removes the flag value from enum + /// + public static T RemoveFlag(this T value, T flag) + where T : Enum + { + return (T)(object)((int)(object)value & ~(int)(object)flag); + } + /// /// Gets a string value for a particular enum value. ///