C# 获取枚举的 键名称,值 和描述 遍历枚举

C# Enum  枚举的操作。  键名称,值 和描述  和 遍历枚举

/// <summary>

/// 促销

/// </summary>

public enum cxsd

{

[Description("推荐")]

tj = 2,

[Description("置顶")]

zd = 4,

[Description("热卖")]

rm = 8

}

//获取 枚举 值

Array rolearry = Enum.GetValues(typeof(cxsd));

//获取枚举名称

String[]rolearry = Enum.GetNames(typeof(cxsd));

获取枚举描述

descriptions(cxsd.rm);//调用

public static string description(Enum  en)

{

Type type = en.GetType();

MemberInfo[] memInfo = type.GetMember(en.ToString());

if (memInfo != null && memInfo.Length > 0)

{

object[] attrs = memInfo[0].GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false);

if (attrs != null && attrs.Length > 0)

return ((DescriptionAttribute)attrs[0]).Description;

}

return en.ToString();

}

//遍历枚举

  Type type = typeof(cxsd);

            foreach (FieldInfo x in type.GetFields(BindingFlags.Public | BindingFlags.Static))
            {
                cxsd item = (cxsd)x.GetValue(null);
            }

//通过以上方法 扩展一个 通用方法 。来获取  指定值的 描述信息

//调用方法

List<int> vlist=new List<int>();

vlist.add(4);

vlist.add(8);

descriptions<cxsd>(vlist);

/// <summary>

/// 获取描述信息

/// </summary>

/// <param name="envalue">枚举值的集合</param>

/// <returns>枚举值对应的描述集合</returns>

public static List<String> descriptions<T>(List<int> envalue)

{

Type type = typeof(T);

List<String> deslist = new List<String>();

foreach (FieldInfo x in type.GetFields(BindingFlags.Public | BindingFlags.Static))

{

T item = (T)x.GetValue(null);

if (envalue.Find((int e) => { return e == Convert.ToInt32(item); }) > 0)

{

deslist.Add(description<T>(item));

}

}

return deslist;

}

public static string description<T>(T en)

{

Type type = en.GetType();

MemberInfo[] memInfo = type.GetMember(en.ToString());

if (memInfo != null && memInfo.Length > 0)

{

object[] attrs = memInfo[0].GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false);

if (attrs != null && attrs.Length > 0)

return ((DescriptionAttribute)attrs[0]).Description;

}

return en.ToString();

}

时间: 2024-12-29 11:36:37

C# 获取枚举的 键名称,值 和描述 遍历枚举的相关文章

PostgreSQL数据库中获取表主键名称

PostgreSQL数据库中获取表主键名称 一.如下表示,要获取teacher表的主键信息: select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from pg_constraint inner join pg_class on pg_constraint.conrelid = pg_class.oid inner join pg_attribute

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

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

c# for循环获取dictionary的键和值

protected void Button1_Click ( object sender, EventArgs e )        {            Dictionary<string, string> DicTest = new Dictionary<string, string>();            DicTest.Add( "a", "1" );            DicTest.Add( "b"

将枚举的键值绑定到下拉列表框

控制器代码: ///assemblyString:程序集名称的长格式,name:获取程序集实例中具有指定名称的 System.Type 对象,except:除了哪些枚举(键或值都可以)不加载到下拉列表框 ///此方法写在控制器当中,GetEnum则为 最下面Html代码中的Action名 public ActionResult GetEnum(string assemblyString, string name, string except = "") { except = strin

C# 枚举转键值对,获取描述等通用方法

/// <summary> /// 扩展方法,获得枚举的Description /// </summary> /// <param name="value">枚举值</param> /// <param name="nameInstead">当枚举值没有定义DescriptionAttribute,是否使用枚举名代替,默认是使用</param> /// <returns>枚举的Des

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

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

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

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

JavaSE8基础 HashMap&lt;Integer,String&gt; keySet values 获取所有键 所有值的集合

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) code: package jizuiku0; import java.util.Collection; import java.util.HashMap; import java.util.Set; /* * @version V17.09 */ public class MapDemo_110 { public static

C# 给枚举定义DescriptionAttribute,把枚举转换为键值对

在C#中,枚举用来定状态值很方便,例如我定义一个叫做Season的枚举 public enum Season { Spring = 1, Summer = 2, Autumn = 3, Winter = 4 } 枚举名是不能出现空格,()-/等字符 我们想把Spring显示为春天,我们要自己定义说明信息,我们可以使用DescriptionAttribute,如下 public enum Season { [Description("春 天")] Spring = 1, [Descrip