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#では、列挙型はintに変換できます:

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

これは、基になる型が int であるか、int にキャスト可能である限りです。

于 2012-09-27T13:38:05.120 に答える
2

にキャストして、intそこから文字列を取得します。

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

すべての列挙は整数型に基づいているため、キャストが最も簡単な解決策です (ただし、列挙が に基づいているlong場合は、オーバーフローが発生する可能性があります)。

さらに、返される型はEnum.GetValues列挙型の値です。LINQ は次のようになります。

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

AseはタイプではありませんEnum

于 2012-09-27T13:38:08.790 に答える
1
Value = Convert.ToInt32(e.ToString())
于 2012-09-27T13:38:36.210 に答える
0

列挙型をint型にキャストすることで直接変換できます。

于 2012-09-27T13:42:41.777 に答える
0

で試すことができます

(int)YourEnum.enumValue; 

また

(int)e
于 2012-09-27T13:38:52.313 に答える
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 に答える