How to get the values of an enum into a SelectList

前端 未结 12 958
醉梦人生
醉梦人生 2020-12-13 11:58

Imagine I have an enumeration such as this (just as an example):

public enum Direction{
    Horizontal = 0,
    Vertical = 1,
    Diagonal = 2
}
12条回答
  •  情深已故
    2020-12-13 12:32

        public static SelectList ToSelectList(this TEnum enumObj) where TEnum : struct
        {
            if (!typeof(TEnum).IsEnum) throw new ArgumentException("An Enumeration type is required.", "enumObj");
    
            var values = from TEnum e in Enum.GetValues(typeof(TEnum)) select new { ID = (int)Enum.Parse(typeof(TEnum), e.ToString()), Name = e.ToString() };
            //var values = from TEnum e in Enum.GetValues(typeof(TEnum)) select new { ID = e, Name = e.ToString() };
    
            return new SelectList(values, "ID", "Name", enumObj);
        }
        public static SelectList ToSelectList(this TEnum enumObj, string selectedValue) where TEnum : struct
        {
            if (!typeof(TEnum).IsEnum) throw new ArgumentException("An Enumeration type is required.", "enumObj");
    
            var values = from TEnum e in Enum.GetValues(typeof(TEnum)) select new { ID = (int)Enum.Parse(typeof(TEnum), e.ToString()), Name = e.ToString() };
            //var values = from TEnum e in Enum.GetValues(typeof(TEnum)) select new { ID = e, Name = e.ToString() };
            if (string.IsNullOrWhiteSpace(selectedValue))
            {
                return new SelectList(values, "ID", "Name", enumObj);
            }
            else
            {
                return new SelectList(values, "ID", "Name", selectedValue);
            }
        }
    

提交回复
热议问题