根据枚举获取枚举的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">传入枚 ...
随机推荐
- krpano之字幕添加
字幕是指介绍语音的字幕,字幕随着语音的播放而滚动,随语音暂停而暂停.字幕添加的前提是用之前的方法添加过介绍语音. 原理: 字幕层在溢出隐藏的父元素中向右滑动,当点击声音控制按钮时,字幕位置被固定,再次 ...
- 语法错误 : 缺少“;”(在“*”的前面) 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
sv2010编译的时候遇到错误: error C2143: 语法错误 : 缺少“;”(在“*”的前面) error C4430: 缺少类型说明符 - 假定为 int.注意: C++ 不支持默认 int ...
- saltstack系列(四)——zmq Paraller Pipeline模式
push/pull模式 push/pull模式,这是一个什么模式呢?战争时期,食物紧缺,实行配给制,大家都排好队,有人专门发放食物,前一个人领取了食物,后一个人跟上继续领取食物,这个push端就是发放 ...
- windows上输入其他国家语言
1.安装语言环境 2.先有语言环境再有该语言下的输入法toolkit工具集. 3.通过特定语言的属性可以查看键盘布局.
- 配置环境是程序员的第一步 -- Windows 10 下 MySQL 安装
MySQL 作为最典型的关系型数据库管理系统,由于其体积小.速度快.总体拥有成本低,尤其是其开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库.MySQL 社区版的功能也足够我们 ...
- 刷题向》关于一道像差分约束的数学题BZOJ1045(NORMAL)
关于这道题,乍一看很像查分约束,但是实际上这道题是可以用数学方法直接解决的. 这道题在蓝书上有原题,可以看到题解,在此再赘述一遍 首先,最终每个小朋友的糖果数量可以计算出来,等于糖果总数除以n,用av ...
- SpringMVC Controller 的简单应用
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Linux查看操作系统版本的几种方式
Linux查看操作系统版本的几种方式: 1.uname -a 2.lsb_release -a 3.cat /etc/issue 4.cat /proc/version 5.cat /etc/redh ...
- SparkR 读取数据& Spark运行的配置
1.本地LOCAL环境安装Spark并试运行配置(在Ubuntu系统下例子) # 打开文件配置环境变量: JAVA,SCALA,SPARK,HADOOP,SBT gedit /etc/profile ...
- jquery dropdownlist.js
$.fn.extend({ SetDict: function (option) { var txtControl = $(this); if (!txtControl.hasClass(" ...