如何在枚举中获取枚举值的 int [重复]
Posted
技术标签:
【中文标题】如何在枚举中获取枚举值的 int [重复]【英文标题】:How to get the int for enum value in Enumeration [duplicate] 【发布时间】:2014-02-02 06:26:03 【问题描述】:如果我有值:“狗”和枚举:
public enum Animals
dog = 0 ,
cat = 1 ,
rat = 2
我如何从 Animals 中得到值“dog”的 0?
编辑:
我想知道是否有类似访问的索引。更常见:如何获取字符串值的整数。
【问题讨论】:
【参考方案1】:只需将您的枚举值转换为整数:
Animals animal = Animals.dog;
int value = (int)animal; // 0
编辑:如果你有枚举值的名称,则解析枚举值并将其转换为整数:
int value = (int)Enum.Parse(typeof(Animals), "dog");
【讨论】:
他的字符串不是枚举。 @TuTran 你能说他编辑了问题吗? 我认为OP的问题很明确:how could I get 0 for the value "dog"
@TuTran 如你所见,不清楚【参考方案2】:
回答你的问题“我怎样才能得到字符串值的整数”:
要将字符串转换为枚举,然后将生成的枚举转换为 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
,而不是Animals
.
【讨论】:
【参考方案3】:您可以cast it to Int 或使用Enum.GetValues 方法迭代所有值,该方法检索指定枚举中常量值的数组。
【讨论】:
【参考方案4】:怎么样:var r = (int)Animals.dog
【讨论】:
需要先将"dog"
解析为Animals.dog
@Tu Tran - 真的,你确定吗?我不同意……你自己试试。
绝对确定。看看 Matthew Watson 的回答,我完全同意他的看法。
@Tu Tran - 请复制并粘贴我的代码并自己尝试。
因为该问题已被编辑(正如 Sergey Berezovskiy 注意到的那样),我认为您应该再次检查该问题。以上是关于如何在枚举中获取枚举值的 int [重复]的主要内容,如果未能解决你的问题,请参考以下文章