Enum to Int。 Int到Enum。转换的最佳方式是什么?

时间:2010-01-26 12:55:34

标签: c# .net enums

 public Enum Days
 {
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6,
    Sunday = 7
 }

现在我想知道如何获取枚举的整数值并将整数值转换为枚举

威尔

       int dayNo = (int) Days.Monday;

将dayNo的值更改为1;

威尔

        Days day = (Days) 2;

将Days.Tuesday分配给变量日?

这是解析的最佳方法吗?

5 个答案:

答案 0 :(得分:7)

是的,这很容易检查:

Days d = (Days)3;
Console.WriteLine(d);

这将输出

Wednesday

作为最佳做法,enum的名称应为Day而不是Days;上面的变量d表示Day而不是Days。请参阅MSDN上的naming guidelines

答案 1 :(得分:6)

是的,除了Enum enum

之外,它会完全相同
public enum Days
 {
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6,
    Sunday = 7
 }

要使用Enum.Parse,你必须提供一个字符串,所以如果你想从int转换你必须通过一个丑陋的字符串。

Days x = (Days)Enum.Parse(typeof(Days), "3");
Days y = (Days)Enum.Parse(typeof(Days), 3.ToString());

......周三都给你。

答案 2 :(得分:4)

总之,yes

答案 3 :(得分:2)

您对枚举的理解是正确的。

如果您对此方法感觉更舒服,可以使用Enum.Parse从数字/名称转换为枚举类型,但它在可读性或性能方面没有任何好处。

奇怪的是,为了解析数字,你需要先调用ToString(),因为Enum.Parse没有整数重载。

从MSDN页面:

Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object.

答案 4 :(得分:1)

是的,它会。但是你在张贴之前试过吗?