public static MultiSelectList ToMultiSelectList <TEnum>(this TEnum enumObj, int[] values, string placeholder = "")
            where TEnum : struct, IComparable, IFormattable, IConvertible
        {
            var destino_list = enumObj.ToDictionary();

            if (!string.IsNullOrEmpty(placeholder))
            {
                destino_list.Add(-1, placeholder);
            }

            destino_list = destino_list.OrderBy(item => item.Key).ToDictionary((keyItem) => keyItem.Key, (valueItem) => valueItem.Value);

            var select_list = new MultiSelectList(destino_list, "Key", "Value", values != null ? values : new int[] { -1 });

            if (!string.IsNullOrEmpty(placeholder))
            {
                select_list.First().Disabled = true;
            }

            return(select_list);
        }