`
njmnjx
  • 浏览: 234728 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

枚举操作类

阅读更多
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
public static class EnumHelper<T>
{
    public static string GetDescription(Enum en)
    {
        Type type = en.GetType();

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

        if (memInfo != null && memInfo.Length > 0)
        {
            object[] attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);

            if (attrs != null && attrs.Length > 0)
            {
                return ((DescriptionAttribute)attrs[0]).Description;
            }
        }

        return en.ToString();
    }

    public static T Parse(string value)
    {
        return (T)Enum.Parse(typeof(T), value);
    }

    public static IList<T> GetValues()
    {
        IList<T> list = new List<T>();
        foreach (object value in Enum.GetValues(typeof(T)))
        {
            list.Add((T)value);
        }

        return list;
    }

    public static Dictionary<T, string> GetValueDescriptionDictionary()
    {
        Dictionary<T, string> dictionary = new Dictionary<T, string>();
        foreach (object value in Enum.GetValues(typeof(T)))
        {
            dictionary.Add((T)value, GetDescription((Enum)value));
        }
        return dictionary;
    }

}
分享到:
评论

相关推荐

    EnumHelper枚举操作类

    功能:枚举操作类,枚举类型创建,转换 * 2. 作者:杨磊 * 3. 创建日期:2008-1-30 * 4. 最后修改日期:2008-11-10 **/ using System; using System.Collections.Generic; using System.Text; using System....

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段和方法等对象。枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-...

    java枚举类的属性、方法和构造方法应用实战

    本文将详细介绍 Java 枚举类的属性、方法和构造方法应用实战,结合实例形式分析了 Java 枚举类的定义、构造及相关应用操作技巧。 枚举类的属性 在 Java 中,枚举类是一种特殊的类,它可以拥有自己的属性。枚举类的...

    Java手动方式创建枚举类示例

    在本文中,我们将通过一个实例来介绍Java手动方式创建枚举类的方法和相关操作技巧。 首先,让我们来看一下枚举类型的定义。枚举类型是一种特殊的类,它可以定义一组具有相同特征的常量。例如,在我们的实例中,我们...

    java枚举实例代码

    虽然枚举不能作为其他类的父类,但它们默认继承了 `java.lang.Enum` 类,这意味着枚举实例可以使用 `Comparable` 和 `Serializable` 接口的方法。 此外,枚举可以实现接口,这使得它们可以具有自定义的行为。例如:...

    56个民族枚举类

    在这个上下文中,这个枚举类可能是用来存储每个民族的名称、代码或者其他相关信息,便于在程序中进行处理和操作。 描述中提到的“NULL”意味着没有提供具体的实现细节或介绍。通常,开发者会创建这样的枚举来规范化...

    易语言枚举文件类模块

    在易语言中,枚举文件类模块是实现对文件和目录进行遍历操作的重要工具。本模块的核心功能在于帮助开发者枚举指定路径下的所有文件和子目录,以便进行文件管理和系统操作。 枚举文件类模块源码通常包含以下几个部分...

    简单总结java枚举类型

    - 枚举常量也可以有初始化块,用于设置初始值或执行初始化操作。 3. 枚举构造器: 枚举构造器是私有的,不能在枚举外部直接实例化。所有的枚举常量在编译时自动由系统实例化。 4. 枚举继承: 虽然枚举不能直接...

    Java中的“枚举类型

    - **性能优势**:枚举提供了`ordinal()`方法,该方法返回枚举元素在其枚举类型的顺序位置,通常是从0开始的整数,可用于高效地进行索引操作。 - **增强可读性**:通过`name()`方法获取枚举元素的名称,使得代码更...

    UNICODE下枚举串口类EnumSerial

    本文将深入探讨在UNICODE环境下,如何枚举串口以及EnumSerial类的相关知识。 首先,枚举串口是编程中一个常见的需求,特别是在进行硬件通信或设备控制时。Windows操作系统提供了一种API函数集,用于访问和操作串行...

    java 枚举遍历键值对 属性类Properties 类加载器

    在Java中,我们可以使用Properties类加载并操作这个文件: ```java Properties props = new Properties(); InputStream in = getClass().getResourceAsStream("/sample.properties"); props.load(in); in.close(); ...

    mybatis入门实战之枚举类型

    1. 创建枚举类:首先,定义一个枚举类,例如`Gender`,包含`MALE`和`FEMALE`两个枚举值,每个枚举值通常会有对应的描述。 ```java public enum Gender { MALE("男"), FEMALE("女"); private String description...

    C# 各种通用类集合

    07.枚举操作辅助类 MyEnumHelper 08.Excel操作辅助类(无需VBA引用) MyExcelHelper.cs 09.打开、保存文件对话框操作辅助类 MyFileDialogHelper.cs 10.常用文件操作辅助类 MyFileHelper.cs 11.键盘操作辅助类,提供...

    枚举 HashMap

    在Java编程中,枚举(Enum)是一种特殊的类,用于定义固定的、有限的一组值。枚举类型在很多场景下非常有用,例如表示状态、角色或其他具有固定集合的实体。然而,有时候我们可能需要实现一个枚举功能,但枚举本身...

    通过表格中数据自动生成枚举和方法(内涵使用教程)

    这需要用到C#的反射和元数据功能,通过`Type`类和`MethodInfo`类来创建和操作方法。例如,你可以根据表格中的数据定义一个模板方法,然后为每个枚举值生成相应的方法实例。 这个工具包提供的使用教程会详细解释如何...

    C# USB操作类和Demo例子 USB操作类

    1. **USB设备枚举**:C# USB操作类会提供枚举USB设备的方法,允许程序检测并识别连接到计算机的所有USB设备。这通常涉及到遍历`Win32_DiskDrive`或`USBDevice`类的实例,获取设备的 VID (Vendor ID) 和 PID (Product...

    易语言模拟枚举类型

    4. 枚举成员操作:在模拟枚举时,可能需要实现类似枚举成员的检查,如判断某个值是否属于枚举范围。这通常通过编写自定义的函数或方法来完成,例如,通过比较值与预先定义的枚举常量来验证。 5. 枚举扩展:如果需要...

    说说Java中的枚举 转 可以了,够了 包括EnumSet(Map)

    `EnumSet`的所有操作都是针对枚举类型的,这意味着它能提供非常快速的查找和插入性能。使用`EnumSet`通常比使用其他集合类更节省内存,因为不需要存储额外的哈希代码和容量信息。 例如,创建一个包含所有`Color`...

    枚举基本操作及说明(实例)VS2008

    本篇文章将详细介绍枚举的基本操作、如何创建枚举以及在VS2008中进行枚举的实例应用。 1. **枚举的定义** 枚举类型在C#中使用`enum`关键字声明。例如,我们可以创建一个表示星期的枚举: ```csharp enum ...

Global site tag (gtag.js) - Google Analytics