如何设置值类型int?

时间:2012-09-27 13:36:40

标签: c# asp.net-mvc

我需要设置值int。怎么做?

    var list = from Enum e in Enum.GetValues(enumValue.GetType())
           select new SelectListItem
           {
               Selected = e.Equals(enumValue),
               Text = e.ToDescription(),
               Value = e.ToString()// need int
           };

如果我设置Value = ((int)e).ToString()

我收到错误:

  

无法将类型'System.Enum'转换为'int'

6 个答案:

答案 0 :(得分:2)

C#中的AFAIK,Enums可以转换为int:

 Value = ((int)e).ToString()

只要底层类型是int或可转换为int即可。

答案 1 :(得分:2)

转换为int并从中获取字符串:

Value = ((int)e).ToString()

所有枚举都基于整数类型,因此强制转换是最简单的解决方案(但如果枚举基于long,则可能会出现溢出)。

此外,从Enum.GetValues返回的类型是枚举的值 - 您的LINQ应该是:

from e in Enum.GetValues(enumValue.GetType())

由于e 属于Enum类型。

答案 2 :(得分:1)

Value = Convert.ToInt32(e.ToString())

答案 3 :(得分:0)

您可以尝试使用

(int)YourEnum.enumValue; 

(int)e

答案 4 :(得分:0)

    var list = from Enum e in Enum.GetValues(enumValue.GetType())
       select new SelectListItem
       {
           Selected = e.Equals(enumValue),
           Text = e.ToDescription(),
           Value = (int) e
       };

答案 5 :(得分:0)

您可以通过将枚举转换为int类型来直接转换枚举。