如果我有值:“dog”和枚举:
public enum Animals
{
dog = 0 ,
cat = 1 ,
rat = 2
}
我怎么能从动物身上得到“狗”这个值?
编辑:
我想知道是否有类似的访问索引。更常见的是:如何获取字符串值的整数。
答案 0 :(得分:7)
只需将枚举值转换为整数:
Animals animal = Animals.dog;
int value = (int)animal; // 0
编辑:如果结果是你有枚举值的名称,那么解析枚举值并将其转换为整数:
int value = (int)Enum.Parse(typeof(Animals), "dog");
答案 1 :(得分:5)
您可以使用cast it to Int方法Enum.GetValues或迭代所有值,该方法检索指定枚举中常量值的数组。
答案 2 :(得分:5)
要回答您的问题“如何获取字符串值的整数”:
要从字符串转换为枚举,然后将生成的枚举转换为int,您可以这样做:
public enum Animals
{
dog = 0,
cat = 1,
rat = 2
}
...
Animals answer;
if (Enum.TryParse("CAT", true, out answer))
{
int value = (int) answer;
Console.WriteLine(value);
}
顺便说一句,正常的枚举命名约定规定你不应该复数你的枚举名称,除非它代表可以设置多个位的标志值(2的幂) - 所以你应该称它为Animal
,而不是{ {1}}。
答案 3 :(得分:3)
怎么样:var r = (int)Animals.dog