最近开始接触到枚举了。因为是偶尔用用,所以老是记不住。今天我就用文档把常用的几个记录下来,以便用下次查找,同时也方便同行。
虽然用了几次枚举,但至今对它了解仍不深,望补充、交流、学习
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()));
}
}注:枚举类中不能有相同的键值
















