代码之家  ›  专栏  ›  技术社区  ›  Anthony

从枚举中获取整数值

  •  18
  • Anthony  · 技术社区  · 15 年前

    我正在做一个基础 Battleship game 帮助我的技能。现在我对枚举有点麻烦。我有:

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

    我想让玩家通过输入“c”和一些代码返回整数 3 . 如何设置它以获取字符串变量( string pick; )并使用这个枚举将其转换为正确的int?我读的这本书有点令人困惑

    5 回复  |  直到 15 年前
        1
  •  45
  •   R. Martinho Fernandes    15 年前

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

    var number = (int)((game) Enum.Parse(typeof(game), pick));
    
        2
  •  12
  •   Muad'Dib    15 年前
    // 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; 
    
        3
  •  5
  •   knoopx    15 年前

    只是打字?

    int a = (int) game.a
    
        4
  •  4
  •   Jeff    15 年前

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

    日本药典

        5
  •  -1
  •   mmacneill123    9 年前

    答案很好,但语法混乱。

    更整洁的是这样的:

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