C# 根据数字值获取相应枚举

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 根据数字值获取相应枚举相关的知识,希望对你有一定的参考价值。

public enum Url

[Description("http://www.thylx.net")]
个人博客 = 1,
[Description("http://blog.163.com/thylx133@126/")]
网易博客 = 2,
[Description("http://www.8eshare.com/")]
八邑分享 = 3


我想通过1,2,3来获取描述值,求各位大神指教
比如获取1

参考技术A int a=1;
Url u=(Url)a;
var a = typeof(Url).GetField(u.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault() as DescriptionAttribute;
var d = a.Description;
//d就是你想要的值本回答被提问者和网友采纳
参考技术B File.Delete(Application.StartupPath +@"\beautiful.txt"); 应该是这样,如果不是的话,先输出Application.StartupPath,看得到的是什么,然后做相应

c#枚举类型操作方法总结-1

关于枚举类型用法总结两点,分享如下:

1.  根据枚举值获取枚举值的描述信息,可以封装一个方法供调用:

//  enumValue是传入的枚举值

public string GetEnumDescrption(Enum enumValue)
{
string value = enumValue.ToString();
FieldInfo field = enumValue.GetType().GetField(value);
object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute),false);//获取描述属性
//当描述没有时直接返回名称
if (objs ==null || objs.Length ==0)
{
return value;
}
DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
return descriptionAttribute.Description;
}

枚举类型是:

public enum EnumSex
{
/// <summary>
/// 男
/// </summary>
[Description("男")]
Male = 0,
/// <summary>
/// 女
/// </summary>
[Description("女")]
Female = 1
}

 

调用方法如下:

以控制台程序为例-

Program program = new Program();
string sex = program.GetEnumDescrption(EnumSex.Female);//sex ="女"
Console.WriteLine(sex);

 

 

2.for循环获取枚举值描述信息:

枚举类型如下:

public enum days
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}

调用方法如下:

Type week = typeof(days);
Array Arrays = Enum.GetValues(week);
for (int i = 0; i < Arrays.LongLength; i++)
{
Console.WriteLine(Arrays.GetValue(i));
}
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);

以上是关于C# 根据数字值获取相应枚举的主要内容,如果未能解决你的问题,请参考以下文章

100个 Unity小知识点 | C#中通过 数字int值 获取 枚举Enum 中的数值

100个 Unity小知识点 | C#中通过 数字int值 获取 枚举Enum 中的数值

根据类型获取枚举中的文字

怎么取出枚举中的数字值

C#枚举扩展方法,获取枚举值的描述值以及获取一个枚举类下面所有的元素

c# 枚举的定义,枚举的用法,获取枚举值