从枚举中获取整数值

时间:2009-12-26 18:33:23

标签: c# enums

我正在研究一个基本的Battleship game来帮助我的C#技能。现在我对枚举有点麻烦。我有:

enum game : int
{
    a=1,
    b=2,
    c=3,
}

我希望播放器传递输入“C”,一些代码返回整数3。我如何设置它以获取字符串var(string pick;)并使用此枚举将其转换为正确的int?我正在阅读的这本书有点令人困惑

5 个答案:

答案 0 :(得分:49)

只需解析字符串并转换为int。

var number = (int)((game) Enum.Parse(typeof(game), pick));

答案 1 :(得分:14)

// convert string to enum, invalid cast will throw an exception
game myenum =(game) Enum.Parse(typeof(game), mystring ); 

// convert an enum to an int
int val = (int) myenum;

// convert an enum to an int
int n = (int) game.a; 

答案 2 :(得分:5)

只是进行类型转换?

int a = (int) game.a

答案 3 :(得分:4)

如果您不确定传入的字符串是否包含有效的枚举值,则可以使用Enum.TryParse()来尝试进行解析。如果它无效,则只返回false,而不是抛出异常。

JP

答案 4 :(得分:-1)

答案很好,但语法很混乱。

更整洁的东西是这样的:

    public DataSet GetBasketAudit(enmAuditPeriod auditPeriod)
    {
        int auditParam =Convert.ToInt32(auditPeriod) ;