根据枚举获取枚举的Description特性值
首先定义一个枚举:两个值:已确认、未确认。
public enum ConfirmStatusEnum
{
[Description("未确认")]
unconfirmed = ,
[Description("已确认")]
confirmed =
}
转换枚举的方法:
private void InitConfirmStatus()
{
int values = ;
object[] atts = null;
ConfirmStatusEntity statusEntity = null;
DescriptionAttribute description = null;
List<ConfirmStatusEntity> status = new List<ConfirmStatusEntity>(); Type type = typeof(ConfirmStatusEnum);//取到枚举的Type
var fields = type.GetFields();//获取枚举中所有字段
foreach (var item in fields)
{
if (item.FieldType != type)//如果类型不是枚举的则跳过
{
continue;
}
statusEntity = new ConfirmStatusEntity();//初始化实体
values = (int)item.GetValue(item.Name);//根据名称获取,枚举项的值
statusEntity.ID = values;
atts = item.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (atts != null && atts.Length != )
{
description = (DescriptionAttribute)atts[];//获取特性的描述信息; description就是特性中的描述信息
//给实体复制
statusEntity.StatusName = description.Description;
status.Add(statusEntity);
}
} //这个地方是我实际情况的处理,供参考
ConfirmStatus = status;
SelectConfirmStatus = status.FirstOrDefault();
}
要转成的实体(根据实际情况,此操作可选):
public class ConfirmStatusEntity
{
/// <summary>
/// 此项对应枚举的int值,即 0,1 ....
/// </summary>
public int ID { get; set; } /// <summary>
/// 此项对应枚举中特性的具体描述信息
/// </summary>
public string StatusName { get; set; }
}
里面有些是我实际情况使用的实体,供参考。
根据枚举获取枚举的Description特性值的更多相关文章
- c#枚举 获取枚举键值对、描述等
using System; using System.Collections.Generic; using System.Collections.Specialized; using System.C ...
- 【转载】[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类
关键代码: using System; using System.Collections; using System.Collections.Generic; using System.Compone ...
- 获取枚举值上的Description特性说明
/// <summary> /// 获取枚举值上的Description特性说明 /// </summary> /// <typeparam name="T&q ...
- 获取枚举Description的Name
/// <summary> /// 获取枚举Description的Name /// </summary> /// <param name="enumName& ...
- 获取枚举Name,Value,Description两种方法
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- C# 获取枚举的描述Description
方法类: public static class EnumExtensions { #region Enum /// <summary> /// 获取枚举变量值的 Description ...
- .NET获取枚举DescriptionAttribute描述信息性能改进的多种方法
一. DescriptionAttribute的普通使用方式 1.1 使用示例 DescriptionAttribute特性可以用到很多地方,比较常见的就是枚举,通过获取枚举上定义的描述信息在UI上显 ...
- c#获取枚举
在实际开发项目中,我们定义了一个枚举,往往我们需要在下拉框或其它地方展示枚举.为了加深印象,也为了帮到有需要的人,我写了一个DEMO. 第一步,我们定义一个枚举: /// <summary> ...
- C#获取枚举描述代码
public class MusterEnum { /// 获取枚举的描述信息 /// </summary> /// <param name="e">传入枚 ...
随机推荐
- Elasticsearch之kopf插件安装之后的浏览详解
前提, Elasticsearch之插件介绍及安装 https://i.cnblogs.com/posts?categoryid=950999&page=2 (强烈建议,从头开始看) 比如, ...
- sublime添加右键菜单
参考:https://www.zhihu.com/question/29662273/answer/45277925 @echo Off :START CLS echo *============== ...
- Android适配器Adapter的学习
Android中有很多的适配器,首先看看这些适配器的继承结构 这些适配器中,BaseAdapter用的最多,也用的最熟,先放过他,从ArrayAdapter开始 一个listAdapter用来管理一个 ...
- 粗粒度(Coarse-grained)vs细粒度(fine-grained)
在读的一篇文献中关于RDF的描述: As we know, RDF data is a set of triples with the form (subject, property, object) ...
- 【bzoj1019】[SHOI2008]汉诺塔
1019: [SHOI2008]汉诺塔 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1427 Solved: 872[Submit][Status] ...
- IDEA maven打包时跳过测试
配置这个install -Dmaven.test.skip=true, 可以跳过business项目本地启动自动跑测试用例
- Luogu 1099 树网的核
bzoj1999 数据加强版(n <= 5e5) 较早的noip题,值得研究 重要结论:直径的最长性,任何从直径中离开直径的点到它离开的点的距离,都不会比直径的另一端到它离开的点长(否则就有新的 ...
- ESP8266-iot-2
1.SDK概述 复制相关的工程文件到HelloWorld里面 要在版本esp8266_nonos_sdk_v2.0.0_16_07_19上面开发,那么就要复制相应文件 然后打开IDE 导入HelloW ...
- 在使用webstorm打开本地项目文件夹的html文件时,浏览器提示404错误
错误原因:在使用webstorm打开本地项目文件夹的html文件时,浏览器提示404错误. 错误分析:文件夹命名内包含“+”,此特殊符号导致浏览器解析错误. 改正方案:去掉特殊符号“+”
- Java String 常用类的使用方法
public static void main(String[] args) { // TODO Auto-generated method stub /* * 使用for循环遍历数组 * int a ...