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

}

相关推荐
DARLING Zero two♡4 分钟前
【优选算法】D&C-Mergesort-Harmonies:分治-归并的算法之谐
java·数据结构·c++·算法·leetcode
张人玉10 分钟前
WPF 控件速查 PDF 笔记(可直接落地版)(带图片)
大数据·microsoft·ui·c#·wpf
java1234_小锋14 分钟前
PyTorch2 Python深度学习 - 初识PyTorch2,实现一个简单的线性神经网络
开发语言·python·深度学习·pytorch2
胡萝卜3.015 分钟前
C++面向对象继承全面解析:不能被继承的类、多继承、菱形虚拟继承与设计模式实践
开发语言·c++·人工智能·stl·继承·菱形继承·组合vs继承
天天摸鱼的java工程师19 分钟前
领导:“线程池又把服务器搞崩了!” 八年 Java 开发:按业务 + 服务器配,从此稳抗大促
java·后端
Violet_YSWY20 分钟前
将axios、async、Promise联系在一起讲一下&讲一下.then 与其关系
开发语言·前端·javascript
luoganttcc41 分钟前
用Python的trimesh库计算3DTiles体积的具体代码示例
开发语言·python·3d
初级程序员Kyle42 分钟前
开始改变第四天 Java并发(2)
java·后端
我爱画页面1 小时前
vue3封装table组件及属性介绍
开发语言·javascript·ecmascript
逻极1 小时前
Next.js vs Vue.js:2025年全栈战场,谁主沉浮?
开发语言·javascript·vue.js·reactjs