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

关于枚举类型的两个有关问题

2012-01-12 
关于枚举类型的两个问题publicenuma//字段名{ID,CODE,NAME}问题1:我可以通过((a)1).ToString(),得到字符串

关于枚举类型的两个问题
public   enum   a       //字段名
        {
                ID,
                CODE,
                NAME
        }

问题1:
我可以通过   ((a)1).ToString(),得到字符串 "CODE ",
如果想反过来由 "CODE "得到数字1或者a类型的CODE,应该如何写呢?
目前想到可以通过循环,
for(i=0;i <3;i++)   if(((a)i).ToString()== "CODE ")   return   (a)i;
但感觉太麻烦了

问题2:如何得到枚举类型中的元素个数?比如上面的循环中,i <3中的3如果要动态的取得,应该怎么写?

[解决办法]
using System;

public class GetValuesTest {
enum Colors { Red, Green, Blue, Yellow };
enum Styles { Plaid = 0, Striped = 23, Tartan = 65, Corduroy = 78 };

public static void Main() {

Console.WriteLine( "The values of the Colors Enum are: ");
foreach(int i in Enum.GetValues(typeof(Colors)))
Console.WriteLine(i);

Console.WriteLine();

Console.WriteLine( "The values of the Styles Enum are: ");
foreach(int i in Enum.GetValues(typeof(Styles)))
Console.WriteLine(i);
}
}
[解决办法]
Enum.Parse( typeof(a), "CODE ");

[解决办法]
数字好说
Console.WriteLine((a)0);
Console.WriteLine((a)1);
Console.WriteLine((a)2);
字符的我再看看。
顺便说一句,枚举命名要大写。
[解决办法]
EnumConverter.ConvertFromString 方法 (String) 将指定文本转换为对象。
[解决办法]
Text = Enum.GetNames(typeof(a)).Length.ToString();

热点排行