C#将一个枚举里面所有描述和value绑定到下拉列表的方法

/// <summary>
/// 获取枚举值的描述,如果没有描述,则返回枚举名称
/// </summary>
/// <param name="en">枚举值</param>
/// <returns>描述</returns>
public static string GetEnumDescription(Enum en)
{
     FieldInfo fi = en.GetType().GetField(en.ToString());

object[] attrs = fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
     if (attrs != null && attrs.Length > 0)
     {
          return ((DescriptionAttribute)attrs[0]).Description;
     }
     else
     {
          return en.ToString();
     }
}

ArrayList listcode = new ArrayList();//定义一个集合
     foreach (int i in Enum.GetValues(typeof(ErrorCode))) //将值循环添加至集合中(ErrorCode:枚举的名称)
     {
          ListItem listitem = new ListItem(GetEnumDescription((ErrorCode)i), i.ToString());

     // ListItem listitem = new ListItem(Enum.GetName(typeof(EnumActivityType), i), i.ToString());//获取枚举名称集合
          listcode.Add(listitem);
     }
     for (int i = 0; i < listcode.Count; i++) // 循环就可输出每个枚举的描述和value(可用于为下拉列表框绑值)
     {
          ListItem item = (ListItem)listcode[i];
          var d = item.Text;
          var b = item.Value;
     }

时间: 2024-10-14 20:17:32

C#将一个枚举里面所有描述和value绑定到下拉列表的方法的相关文章

在C#中如何读取枚举值的描述属性

在C#中,有时候我们需要读取枚举值的描述属性,也就是说这个枚举值代表了什么意思.比如本文中枚举值 Chinese ,我们希望知道它代表意思的说明(即“中文”). 有下面的枚举: 1 2 3 4 5 6 public enum EnumLanugage {     [System.ComponentModel.Description("中文")]     Chinese,     English } 我们要获取的就是 Chinese 中的说明文字“中文”. 1 2 3 4 5 6 7 8

返回枚举值的描述 根据枚举类型返回类型中的所有值、文本及描述

/// <summary> /// 返回枚举值的描述 /// </summary> /// <param name="value">枚举值</param> /// <returns>指定枚举值描述</returns> public static string getEnumDescription(this Enum value) { FieldInfo fi = value.GetType().GetField(v

利用DescriptionAttribute定义枚举值的描述信息 z

System.ComponentModel命名空间下有个名为DescriptionAttribute的类用于指定属性或事件的说明,我所调用的枚举值描述信息就是DescriptionAttribute类的Description属性值. 首先定义一个枚举 /// <summary>    /// 测试用的枚举    /// </summary>    public enum ArticleTypeList    {        [DescriptionAttribute("

C#枚举扩展方法,获取枚举值的描述值以及获取一个枚举类下面所有的元素

/// <summary> /// 枚举扩展方法 /// </summary> public static class EnumExtension { private static Dictionary<string, Dictionary<string, string>> _enumCache; /// <summary> /// 缓存 /// </summary> private static Dictionary<stri

获取枚举类型的描述description

using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace candel { class Program { static void Main(string[] args) { int x = (in

ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法

今天用PL/SQL连接虚拟机中的Oracle数据库,发现报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,也许你也遇到过,原因如下: oracle安装成功后,一直未停止数据库(即数据库是启动的),客户端配置成功后,应该一直不会有什么问题. 有时把Oracle安装在虚拟机中,而且Oracle安装完毕后,没在进行任何监听的配置,则虚拟机再启动,则就会出现ORA-12514的问题. 如下是解决思路: 根据出错信息判断出客户端未监听到实例服务名 1.通过重启服务的方式启动

Linux 文件描述符设置为非阻塞的方法

通过fcntl设置文件描述符属性 fcntl即F_SETFL,F_GETFL的使用,设置文件的flags,阻塞设置成非阻塞,非阻塞设置成阻塞(这连个在server开发中可以封装为基本函数) 1.获取文件的flags,即open函数的第二个参数: flags = fcntl(fd,F_GETFL,0); 2.设置文件的flags: fcntl(fd,F_SETFL,flags); 3.增加文件的某个flags,比如文件是阻塞的,想设置成非阻塞: flags = fcntl(fd,F_GETFL,0

将一个byte[]数组根据大小拆分为若干小byte[]数组方法

/// <summary> /// 将大数组拆分为多个小数组 /// </summary> /// <param name="superbyte">需要拆分原始数组</param> /// <param name="size">拆分后单个数组大小</param> /// <returns></returns> public List<byte[]> Split

从一个int值显示相应枚举类型的名称或者描述

我正在做一个出入库管理的简单项目,在Models里定义了这样的枚举类型 public enum InOrOut { [Description("出库")] Out = 0, [Description("入库")] In = 1 } 我想在输入参数为数据库字段值1或者0的时候,在页面上显示为枚举Name:In.Out,或者干脆显示为Description:出库.入库. 获取枚举Name其实很简单: return Enum.GetName(typeof(InOrOut)