读书人

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

发布时间: 2012-01-12 22:11:58 作者: rapoo

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

读书人网 >C#

热点推荐