将值与 c# 中的枚举进行比较
本文关键字:枚举 比较 | 更新日期: 2023-09-27 18:35:49
我正在构建一个简单的例子,说明它是其中一部分的复杂问题。
为了方便起见,有一个下拉列表,其中充满了一年中的月份。
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
}
从下拉列表中选择任何月份值后,我必须通过与存储其数值的枚举匹配来获得适当的数值。
例如:下拉列表中的值是 May,因此其对应的数字部分 5。
从数据库获取将是数字的值后,我必须如何获取枚举的文本部分。
例如:数据库中的值是 5,因此其相应的文本部分 MAY。
何 我能实现上述场景吗?
您可以将整数值强制转换为枚举类型:
int value = 5;
string month = ((Months)value).ToString();
或者,您可以使用GetName
方法:
int value = 5;
string month = Enum.GetName(typeof(Months), value);
1)
使用 Enum.Format() 通过枚举的文本值获取十进制值:
编辑:
var monthNumber = Enum.Format(typeof(Months), Enum.Parse(typeof(Months), ddlColors.SelectedValue.ToString()),"d");
2)只需将整数转换为枚举并调用它为ToString()
var month = ((Months)value).ToString();
1.) 您可以使用 Enum.Parse()
将字符串转换为枚举(请注意,还有一个不区分大小写的重载)。
(Months)Enum.Parse(typeof(Months), "May");
2.)要将值转换为字符串,只需调用ToString()
.
((Months)5).ToString();