枚举中常用的几个方法

mac2022-06-30  144

最近开始接触到枚举了。因为是偶尔用用,所以老是记不住。今天我就用文档把常用的几个记录下来,以便用下次查找,同时也方便同行。

虽然用了几次枚举,但至今对它了解仍不深,望补充、交流、学习

1.Parse()

根据枚举value值求key。返回类型int

Convert.ToInt32(Enum.Parse(typeof(EMB.BLL.Enum.Resource.Layout), datstr))

2.GetName

根据枚举key值求value。返回类型string

 Enum.GetName(typeof(EMB.BLL.Enum.Resource.Layout),2)

3.GetNames

把枚举的value值保存在数据中。返回类型array

Enum.GetNames(typeof(SN.ERP.Enum.upfile.exten))

惹要循环枚举的value值,可循环数据array

4.惹要循环枚举的key和value值

可这样:foreach (System.Collections.Generic.KeyValuePair<int, string> oE in SN.Common.Utils.Trans(typeof(EMB.BLL.Enum.Resource.FlagID)))

能过oE.Key, oE.Value得到key 和value值 

5.枚举中的包含关系

例:枚举

/// <summary>            /// 合作研究16            /// </summary>            合作研究 = 0x0010,            /// <summary>            /// 合作教学32            /// </summary>            合作教学 = 0x0020,            /// <summary>            /// 访问交流64            /// </summary>            访问交流 = 0x0040,            /// <summary>            /// 国际/国内合作            /// </summary>            合作交流 = 合作研究 | 合作教学 | 访问交流,

要实现的效果是,当第一个下拉列表选择“合作交流”,第二个下拉列表就梆定枚举“合作研究 | 合作教学 | 访问交流”。

 switch (cid)        {              case 62:count = (int)Enum.Artic.EnumClass.合作交流;break;            case 9:count=(int)Enum.Artic.EnumClass.研究平台;break;        }                foreach (string s in Enum.GetNames(typeof(Enum.Artic.EnumClass)))        {            int currentid = (int)Enum.Parse(typeof(Enum.Artic.EnumClass), s);            if ((currentid & count) > 0 && count != currentid)            {                ddlEnumClass.Items.Add(new ListItem(s, currentid.ToString()));            }        }

 注:枚举类中不能有相同的键值

 

转载于:https://www.cnblogs.com/sunnysmile/archive/2009/05/13/1456101.html

最新回复(0)