考虑以下枚举:
public enum LeadStatus
{
Cold = 1,
Warm = 2,
Hot = 3,
Quote = 5,
Convert = 6
}
当我从数据库中提取值时,如何将整数值转换回字符串。我试过了:
DomainModel.LeadStatus status = (DomainModel.LeadStatus)Model.Status;
但我似乎得到的只是“status = 0”
答案 0 :(得分:4)
您正在寻找的是Enum.Parse。
“将一个或多个枚举常量的名称或数值的字符串表示形式转换为等效的枚举对象。”
以下是MSDN页面:http://msdn.microsoft.com/en-us/library/essfb559.aspx
示例:
enum Colour
{
Red,
Green,
Blue
}
// ...
Colour c = (Colour) Enum.Parse(typeof(Colour), "Red", true);
由http://blogs.msdn.com/tims/archive/2004/04/02/106310.aspx提供
答案 1 :(得分:3)
在Enum.Parse和Enum.ToString之间,你应该能够做你需要的一切。
答案 2 :(得分:2)
只需在枚举对象
上使用ToString()答案 3 :(得分:2)
鉴于“Model.Status”是数据库中的整数,可以将其恢复为Enum字符串值:
string status = Enum.GetName(typeof(DomainModel.LeadStatus), Model.Status);
答案 4 :(得分:1)
C#中的枚举用于为某些已知值提供名称,但在该枚举中允许任何整数值,无论它是否具有命名等效值。
在您的示例中,您尚未命名零值,但您的status
变量初始化为零。我怀疑它在你阅读它时没有从这个初始值改变。因此,它的字符串表示也是0,并且在解析它时将解析为零。