/// <summary> /// Gets a combined enum with all the specified flags set /// </summary> public static TEnum Combine <TEnum>(params TEnum[] flags) where TEnum : struct, IConvertible { if (flags.Length == 0) { throw new ArgumentOutOfRangeException(); } if (flags == null) { throw new ArgumentNullException(); } TEnum multiEnum = flags[0]; for (int i = 1; i < flags.Length; i++) { multiEnum.Add(flags[i]); } return(multiEnum); }