开发者

Convert integer enum to string

considering the following enum:

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

How can I convert the integer value back to string when I pull the value from a database. I've tried:

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

but all I seem to get 开发者_运维知识库is "status = 0"


What you are looking for is Enum.Parse.

"Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object."

Here is the MSDN page: http://msdn.microsoft.com/en-us/library/essfb559.aspx

Example:

enum Colour
{
   Red,
   Green,
   Blue
} 

// ...
Colour c = (Colour) Enum.Parse(typeof(Colour), "Red", true);

Courtesy of http://blogs.msdn.com/tims/archive/2004/04/02/106310.aspx


Between Enum.Parse and Enum.ToString, you should be able to do everything you need.


Just use ToString() on the enum object


Given "Model.Status" is the integer from the database, it can be restored to the Enum string value with:

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


An enumeration in C# is used to provide names for some known values but ANY integer value is permissible in that enumeration, whether it has a named equivalent or not.

In your example, you have not named a zero value, but your status variable initialises to zero. I suspect that it has not changed from this initial value at the point you read it. Therefore, it's string representation is also 0 and you will parse out zero when you parse it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜