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

}

相关推荐
Filotimo_3 分钟前
在java开发中,什么是JSON格式
开发语言·json
Vic1010119 分钟前
解决 Spring Security 在异步线程中用户信息丢失的问题
java·前端·spring
咕噜签名-铁蛋23 分钟前
云服务器远程连接失败?
开发语言·php
QD_IT伟31 分钟前
SpringBoot项目整合Tlog 数据链路的规范加强
java·spring boot·后端
源码获取_wx:Fegn089531 分钟前
基于springboot + vue二手交易管理系统
java·vue.js·spring boot·后端·spring·课程设计
Zsh-cs32 分钟前
Spring
java·数据库·spring
爬山算法34 分钟前
Springboot请求和响应相关注解及使用场景
java·spring boot·后端
程序员水自流37 分钟前
MySQL InnoDB存储引擎详细介绍之事务
java·数据库·mysql·oracle
~无忧花开~1 小时前
Vue二级弹窗关闭错误解决指南
开发语言·前端·javascript·vue.js
c#上位机1 小时前
halcon图像增强——emphasize
图像处理·人工智能·计算机视觉·c#·上位机·halcon