关于枚举类型的两个问题
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();