如何在Enumeration中获取枚举值的int

时间:2014-01-14 08:59:22

标签: c# enums enumeration

如果我有值:“dog”和枚举:

public enum Animals
{
  dog = 0 ,
  cat = 1 ,
  rat = 2
}

我怎么能从动物身上得到“狗”这个值?

编辑:

我想知道是否有类似的访问索引。更常见的是:如何获取字符串值的整数。

4 个答案:

答案 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