0

我需要设置值 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”

4

6 回答 6

2

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

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

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

于 2012-09-27T13:38:05.120 回答
2

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

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

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

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

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

Ase不会是typeEnum

于 2012-09-27T13:38:08.790 回答
1
Value = Convert.ToInt32(e.ToString())
于 2012-09-27T13:38:36.210 回答
0
    var list = from Enum e in Enum.GetValues(enumValue.GetType())
       select new SelectListItem
       {
           Selected = e.Equals(enumValue),
           Text = e.ToDescription(),
           Value = (int) e
       };
于 2012-09-27T13:41:17.913 回答
0

你可以试试

(int)YourEnum.enumValue; 

或者

(int)e
于 2012-09-27T13:38:52.313 回答
0

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

于 2012-09-27T13:42:41.777 回答