m0_50967605 2021-12-06 10:07 采纳率: 83.3%
浏览 30
已结题

string转Enum名称进行访问

事情是这样的,我个人需要将枚举转成list集合,所以写了一个方法去转换但是我想动态去接收枚举


  #region  枚举List类型
        public static System.Collections.Generic.List<object> GetEnumList<T>()
        {
            System.Collections.Generic.List<object> list = new System.Collections.Generic.List<object>();
            foreach (var item in RecipeEnum.GetValues(typeof(T)))
            {
                list.Add(new { id = item, text = RecipeEnum.GetName(typeof(T), item) });
            }
            return list;
        }
        #endregion

想实现string动态去转换枚举名,然后通过string转换的枚举名去访问枚举

 string strValue = Enume.ToString();
 return  Common.GetEnumList<strValue>();

以下的的方法挺繁琐的,希望能在这寻找到帮助,非常感谢!

if (!string.IsNullOrEmpty(enCode))
            {
                switch (enCode)
                {
                    case "DounloadFormat":
                        return Content(Common.GetEnumList<DounloadFormat>().ToJson());
                    case "ConnectionType":
                        return Content(Common.GetEnumList<ConnectionType>().ToJson());
                    case "RecipeType":
                        return Content(Common.GetEnumList<RecipeEnum>().ToJson());
                }
            }
  • 写回答

3条回答 默认 最新

  • CSDN专家-文盲老顾 2021-12-06 12:34
    关注
            public static T EnumValueOf<T>(int index)
            {
                return (T)Enum.Parse(typeof(T), Enum.GetNames(typeof(T)).GetValue(index).ToString());
            }
    
            public static Hashtable EnumToHashtable<T>()
            {
                Hashtable ht = new Hashtable();
                for (int i = 0; i < EnumLength<T>(); i++)
                {
                    T v = EnumValueOf<T>(i);
                    ht[Enum.GetName(typeof(T), v)] = (int)Enum.GetValues(typeof(T)).GetValue(i);
                }
                return ht;
            }
    

    我这里有个枚举泛型转 hashtable的,你可以自己转成list

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月7日
  • 已采纳回答 7月30日
  • 修改了问题 12月6日
  • 修改了问题 12月6日
  • 展开全部

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功