user216205
user216205

Reputation: 43

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"

Upvotes: 4

Views: 34038

Answers (5)

bigtech
bigtech

Reputation: 484

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);

Upvotes: 5

Jeff Yates
Jeff Yates

Reputation: 62367

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.

Upvotes: 1

Chris Clark
Chris Clark

Reputation: 4794

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

Upvotes: 3

Midhat
Midhat

Reputation: 17810

Just use ToString() on the enum object

Upvotes: 3

vfilby
vfilby

Reputation: 10008

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

Upvotes: 4

Related Questions