c# 枚举帮助类

ublic class EnumHelper

{

#region 返回枚举对应属性

/// <summary>

/// 返回枚举对应属性

/// </summary>

/// <typeparam name="T">枚举类</typeparam>

/// <returns></returns>

public static List<Model.EnumType> EnumToList<T>()

{

List<Model.EnumType> list = new List<Model.EnumType>();

var items = Enum.GetValues(typeof(T));

foreach (var item in items)

{

Model.EnumType entity = new Model.EnumType();

object[] obj = item.GetType().GetField(item.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), true);

if (obj != null && obj.Length > 0)

{

DescriptionAttribute da = obj[0] as DescriptionAttribute;

entity.Desction = da.Description;

}

entity.Value = Convert.ToInt32(item);

entity.Name = item.ToString();

list.Add(entity);

}

return list;

}

#endregion

#region 获取枚举类型描述

/// <summary>

/// 获取枚举类型描述

/// </summary>

/// <param name="enumValue">枚举值</param>

/// <returns></returns>

public static string GetEnumDescription(Enum enumValue)

{

string str = enumValue.ToString();

System.Reflection.FieldInfo field = enumValue.GetType().GetField(str);

object[] objs = field.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false);

if (objs == null || objs.Length == 0) return str;

System.ComponentModel.DescriptionAttribute da = (System.ComponentModel.DescriptionAttribute)objs[0];

return da.Description;

}

#endregion

#region 字符串转枚举

/// <summary>

/// 字符串转枚举

/// </summary>

/// <typeparam name="T">枚举类型</typeparam>

/// <param name="value">名称</param>

/// <returns></returns>

public static T StringToEnum<T>(string value)

{

var obj = (T)Enum.Parse(typeof(T), value, false);

return obj;

}

#endregion

}

相关推荐
charlie114514191几秒前
面向C++程序员的JavaScript 语法实战学习4
开发语言·前端·javascript·学习·函数
夫唯不争,故无尤也1 分钟前
Python广播机制:张量的影分身术
开发语言·python
qq_479875438 分钟前
X-Macros(3)
java·开发语言
想不明白的过度思考者12 分钟前
Spring Web MVC从入门到实战
java·前端·spring·mvc
Andy12 分钟前
Docker 初识
java·docker·容器
SunnyDays101120 分钟前
Java 高效实现 PPT 转 PDF
java·ppt转pdf
IUGEI21 分钟前
【后端开发笔记】JVM底层原理-内存结构篇
java·jvm·笔记·后端
合作小小程序员小小店25 分钟前
网页开发,在线%宠物论坛管理%系统,基于eclipse,html,css,jquery,servlet,jsp,sql server数据库。
java·sqlserver·eclipse·jdk·html·intellij-idea
列逍25 分钟前
深入理解 C++ 异常:从概念到实战的全面解析
开发语言·c++
java1234_小锋30 分钟前
简述Mybatis的插件运行原理?
java·开发语言·mybatis