首先定义一个枚举:两个值:已确认、未确认。

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特性值的更多相关文章

  1. c#枚举 获取枚举键值对、描述等

    using System; using System.Collections.Generic; using System.Collections.Specialized; using System.C ...

  2. 【转载】[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类

    关键代码: using System; using System.Collections; using System.Collections.Generic; using System.Compone ...

  3. 获取枚举值上的Description特性说明

    /// <summary> /// 获取枚举值上的Description特性说明 /// </summary> /// <typeparam name="T&q ...

  4. 获取枚举Description的Name

    /// <summary> /// 获取枚举Description的Name /// </summary> /// <param name="enumName& ...

  5. 获取枚举Name,Value,Description两种方法

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  6. C# 获取枚举的描述Description

    方法类: public static class EnumExtensions { #region Enum /// <summary> /// 获取枚举变量值的 Description ...

  7. .NET获取枚举DescriptionAttribute描述信息性能改进的多种方法

    一. DescriptionAttribute的普通使用方式 1.1 使用示例 DescriptionAttribute特性可以用到很多地方,比较常见的就是枚举,通过获取枚举上定义的描述信息在UI上显 ...

  8. c#获取枚举

    在实际开发项目中,我们定义了一个枚举,往往我们需要在下拉框或其它地方展示枚举.为了加深印象,也为了帮到有需要的人,我写了一个DEMO. 第一步,我们定义一个枚举: /// <summary> ...

  9. C#获取枚举描述代码

    public class MusterEnum { /// 获取枚举的描述信息 /// </summary> /// <param name="e">传入枚 ...

随机推荐

  1. leetcode804

    int uniqueMorseRepresentations(vector<string>& words) { map<char, string> st; st.ins ...

  2. PHP 环境安装

    官方 http://www.php.net/ http://php.net/manual/zh/install.php http://php.net/manual/zh/index.php 下载也就是 ...

  3. For input String:"" 异常记录

    开发中遇到  For input String:""  这个异常,一般为在将字符串转换为数字类型时, 出现转换的异常,常见的比如输入的字符串为空串

  4. Screen - BOM对象

    Screen 对象 Screen 对象包含有关客户端显示屏幕的信息. 注释:没有应用于 screen 对象的公开标准,不过所有浏览器都支持该对象. Screen 对象属性 属性 描述 availHei ...

  5. laravel的模型关联之(一对多的反向)

    一对多的反向 一对多的反向就相当于,一个用户有多篇文章,但是在显示文章模型的时候你又想显示这个用户的用户名,但是你只有用户id, 这时候就用到了一对多的反向,你用用户(User)模型里面定义了一对多来 ...

  6. Codeforces 1120C Compress String(DP)

    题意:给你一个字符串,有2种消除方式:1:消除一个单独的字母,代价为a.2:s[j]到s[k]是s[1]到s[j - 1]的子串,那么s[j]到s[k]可以消除,代价为b,问最小的代价. 思路:官方题 ...

  7. 599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小

    [抄题]: Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of fa ...

  8. Django rest_framework----认证,权限,频率组件

    认证 from rest_framework.authentication import BaseAuthentication from rest_framework.exceptions impor ...

  9. ubuntu扩展屏幕

    1.了解设置的名称 直接运行xrandr(不带任何参数)就可以显示出当前的显示设备及设备的模式. xdj@xdj-Presario-CQ42-Notebook-PC:~$ xrandr Screen ...

  10. Struts中ActionContext和ServletActionContext的比较

    一.ActionContext在Struts2开发中除了将请求参数自动设置到Action的字段中,往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直 ...