0

私は、それが含まれる複雑な問題の簡単な例を組み立てています。

簡単にするために、年の月で満たされたドロップダウン リストがあります。

BindDropDown()
{
    ddlColors.DataSource = GetAllMonths();//Returns a List<string> with months
    ddlColors.DataBind();
    //note the drop down only have data fields no value fields no corresponding numeric   values of the months.
}

public enum Months
{
    January   = 1,
    February  = 2,
    March     = 3,
    April     = 4,
    May       = 5,
    June      = 6,  
    July      = 7,  
    August    = 8,  
    September = 9,  
    October   = 10, 
    November  = 11,
    December  = 12
}
  1. ドロップダウンから月の値を選択した後、その数値を格納する列挙型とどのように一致するかによって、適切な数値を取得する必要があります。

    例: ドロップダウンの値は 5 月なので、対応する数値部分は 5 です。

  2. 数値になるデータベースから値を取得した後、列挙型のテキスト部分を取得する必要があります。

    例: データベースからの値は 5 なので、対応するテキスト部分は MAY です。

上記のシナリオを実現できますか?

4

3 に答える 3

2

整数値を列挙型にキャストできます。

int value = 5;
string month = ((Months)value).ToString();

GetNameまたは、次の方法を使用することもできます。

int value = 5;
string month = Enum.GetName(typeof(Months), value);
于 2013-10-18T06:15:00.087 に答える
1

1) Enum.Format()を使用して、列挙型のテキスト値で 10 進数値を取得します。

編集:

 var monthNumber = Enum.Format(typeof(Months), Enum.Parse(typeof(Months), ddlColors.SelectedValue.ToString()),"d");

2) 整数を列挙型にキャストし、ToString() を呼び出すだけです。

 var month = ((Months)value).ToString();
于 2013-10-18T06:15:33.667 に答える
0

1.)Enum.Parse()文字列を列挙型に変換するために使用できます (大文字と小文字を区別しないためのオーバーロードもあることに注意してください)。

(Months)Enum.Parse(typeof(Months), "May");

2.) 値を文字列に変換するには、 を呼び出すだけですToString()

((Months)5).ToString();
于 2013-10-18T06:17:04.073 に答える