首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于枚举的遍历有关问题

2013-09-09 
关于枚举的遍历问题现在有个枚举public enum days{sunday0,monday1,}我想遍历这个枚举,读出sunday..0mon

关于枚举的遍历问题
现在有个枚举


public enum days
    {
        sunday=0,
        monday=1,
       
    }


我想遍历这个枚举,读出sunday..0   monday .. 1

Type t= typeof(days);
string[] a= t.GetEnumNames();


这样只能读取sunday,monday...而GetValues能读取0,1

有没办法2个同时读取?就把sunday=0看成一个对象这样来读
[解决办法]

--定义一个枚举类型
public enum Gender
{
    [Description("男")]
    Male = 1,

    [Description("女")]
    Female = 2
}


--定义一个枚举类
public static class EnumDataUtility
{
    private static Dictionary<string, object> _EnumItemCollectionsStock;
    static EnumDataUtility()
    {
        _EnumItemCollectionsStock = new Dictionary<string, object>();
    }
    /// <summary>
    /// 获取一个枚举集合类。
    /// </summary>
    /// <typeparam name="TEnum"></typeparam>
    /// <returns></returns>
    public static EnumItemCollection<TEnum> GetEnumItemCollection<TEnum>() where TEnum : struct
    {
        string enumKey = typeof(TEnum).FullName;
        if (!_EnumItemCollectionsStock.ContainsKey(enumKey) 
[解决办法]
 _EnumItemCollectionsStock[enumKey] == null)
        {
            lock (_EnumItemCollectionsStock)
            {



                EnumItemCollection<TEnum> collection = new EnumItemCollection<TEnum>();
                _EnumItemCollectionsStock[enumKey] = collection;
            }
        }
        return _EnumItemCollectionsStock[enumKey] as EnumItemCollection<TEnum>;
    }
}


//绑定DropDownList控件
this.ddl_Gender.DataSource = EnumDataUtility.GetEnumItemCollection<Gender>().ToList().Select(t => { return new { Text = t.Description, Value = t.Value }; });
this.ddl_Gender.DataTextField = "Text";
this.ddl_Gender.DataValueField = "Value";
this.ddl_Gender.DataBind();
this.ddl_Gender.Items.Insert(0, new ListItem("<-- 性別 -->", ""));



请参照这个:

热点排行