Example #1
0
        public static string[] MaskOutEnumNames <TEnum>(int mask, EnumToStringDelegate toString)
        {
            if (!typeof(TEnum).IsEnum)
            {
                throw new ArgumentException("Arg not an enum");
            }
            var values = Enum.GetValues(typeof(TEnum));
            var result = new List <String>();

            for (int i = 0; i < values.Length; i++)
            {
                if (((int)values.GetValue(i) & mask) != 0)
                {
                    result.Add(toString((int)values.GetValue(i)));
                }
            }
            return(result.ToArray());
        }
        internal static string[] ClipOutEnumNames <TEnum>(int start, int end, EnumToStringDelegate <TEnum> toString)
        {
            if (!typeof(TEnum).IsEnum)
            {
                throw new ArgumentException("Arg not an enum");
            }
            var values = Enum.GetValues(typeof(TEnum));
            var result = new List <String>();

            for (int i = 0; i < values.Length; i++)
            {
                var v = values.GetValue(i);
                if ((int)v >= start && (int)v <= end)
                {
                    result.Add(toString((TEnum)v));
                }
            }
            return(result.ToArray());
        }