将整数枚举转换为字符串

时间:2010-03-29 17:21:45

标签: c# enums

考虑以下枚举:

public enum LeadStatus 
{ 
    Cold = 1, 
    Warm = 2, 
    Hot = 3, 
    Quote = 5, 
    Convert = 6 
} 

当我从数据库中提取值时,如何将整数值转换回字符串。我试过了:

DomainModel.LeadStatus status = (DomainModel.LeadStatus)Model.Status;

但我似乎得到的只是“status = 0”

5 个答案:

答案 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.ParseEnum.ToString之间,你应该能够做你需要的一切。

答案 2 :(得分:2)

只需在枚举对象

上使用ToString()

答案 3 :(得分:2)

鉴于“Model.Status”是数据库中的整数,可以将其恢复为Enum字符串值:

string status  = Enum.GetName(typeof(DomainModel.LeadStatus), Model.Status);

答案 4 :(得分:1)

C#中的枚举用于为某些已知值提供名称,但在该枚举中允许任何整数值,无论它是否具有命名等效值。

在您的示例中,您尚未命名零值,但您的status变量初始化为零。我怀疑它在你阅读它时没有从这个初始值改变。因此,它的字符串表示也是0,并且在解析它时将解析为零。