zoukankan      html  css  js  c++  java
  • ENUM帮助类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    using System.Reflection;

    namespace CommonFunction
    {
    public class EnumClass
    {
    private static object refLock = new object();
    private static EnumClass instance=null;

    public static EnumClass Instance
    {
    get {
    lock (refLock)
    {
    if (instance == null)
    {
    lock (refLock)
    {
    instance
    = new EnumClass();
    }
    }
    }
    return instance;
    }
    }


    /// <summary>
    /// 获取指定枚举类型的键值对集合
    /// </summary>
    /// <param name="type">枚举类型</param>
    /// <returns></returns>
    public Hashtable GetKeysAndValues(Type type)
    {
    if (!CheckType(type))
    {
    return null;
    }

    Hashtable list
    = new Hashtable();
    foreach (string key in Enum.GetNames(type))
    {
    string val=Enum.Format( type, Enum.Parse(type, key), "d");
    list.Add(key,val);
    }

    return list;
    }


    /// <summary>
    /// 获取枚举类型元素集合
    /// </summary>
    /// <param name="type">枚举类型</param>
    /// <returns></returns>
    public Array GetKeys(Type type)
    {
    if (!CheckType(type))
    {
    return null;
    }

    //检索指定枚举中常数值的数组
    return Enum.GetValues(type);
    }


    /// <summary>
    /// 检验枚举类型
    /// </summary>
    /// <param name="type">类型</param>
    /// <returns></returns>
    private bool CheckType(Type type)
    {
    if (type == null)
    {
    return false;
    }

    if (!type.IsEnum)
    {
    throw new Exception(type.FullName + "不是枚举类型");
    }

    return true;
    }


    /// <summary>
    /// 获取枚举类型值集合
    /// </summary>
    /// <param name="type">枚举类型</param>
    /// <returns></returns>
    public List<int> GetValues(Type type)
    {
    Array array
    = GetKeys(type);
    List
    <int> list = new List<int>();
    foreach (object obj in array)
    {
    list.Add((
    int)obj);
    }

    return list;
    }

    }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;

    namespace CommonFunction
    {
    class Program
    {
    enum Days { Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6 };
    static void Main(string[] args)
    {
    Hashtable hashtable
    = EnumClass.Instance.GetKeysAndValues(typeof(Days));
    Console.WriteLine(
    "---------枚举类型键值对---------");
    foreach (DictionaryEntry de in hashtable)
    {
    Console.WriteLine(de.Key
    +" = "+de.Value);
    }
    Console.WriteLine();

    Console.WriteLine(
    "---------枚举类元素---------");
    Array array
    = EnumClass.Instance.GetKeys(typeof(Days));
    foreach (Days day in array)
    {
    Console.WriteLine(day);
    }
    Console.WriteLine();

    Console.WriteLine(
    "---------枚举类值---------");
    List
    <int> list = EnumClass.Instance.GetValues(typeof(Days));
    foreach (int i in list)
    {
    Console.WriteLine(i);
    }
    Console.ReadLine();
    }
    }
    }
  • 相关阅读:
    《梦断代码》阅读笔记Ⅰ
    BICEP单元测试计划——四则运算Ⅱ
    软件工程随堂小作业——随机四则运算Ⅱ(C++)
    PSP0级 周活动总结表+时间记录日志+缺陷记录日志 表格模板
    阅读《软件工程—理论方法与实践》第十章心得体会
    阅读《软件工程—理论方法与实践》第九章心得体会
    阅读《软件工程—理论方法与实践》第八章心得体会
    阅读《软件工程—理论方法与实践》第七章心得体会
    阅读《软件工程—理论方法与实践》第六章心得体会
    阅读《软件工程—理论方法与实践》第五章心得体会
  • 原文地址:https://www.cnblogs.com/hlxs/p/2087982.html
Copyright © 2011-2022 走看看