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. 从下拉列表中选择任何月份值后,我必须通过与存储其数值的枚举的匹配程度来获得适当的数值。

    例如:下拉列表中的值是 May,因此其对应的数字部分为 5。

  2. 从数据库中获取数值后,我必须如何获取枚举的文本部分。

    例如:数据库中的值为 5,因此其对应的文本部分可以。

ho 能不能实现上面的场景?

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()通过枚举的文本值获取十进制值:

编辑:

 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 回答