Преобразовать целочисленное перечисление в строку - PullRequest
4 голосов
/ 29 марта 2010

с учетом следующего перечисления:

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

Как я могу преобразовать целочисленное значение обратно в строку при извлечении значения из базы данных. Я пробовал:

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

но все, что мне кажется, это "status = 0"

Ответы [ 5 ]

4 голосов
/ 29 марта 2010

Что вы ищете, так это 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

3 голосов
/ 29 марта 2010

Между Enum.Parse и Enum.ToString , вы должны иметь возможность делать все, что вам нужно.

2 голосов
/ 22 мая 2013

Учитывая, что Model.Status является целым числом из базы данных, его можно восстановить до строкового значения Enum с помощью:

string status  = Enum.GetName(typeof(DomainModel.LeadStatus), Model.Status);
2 голосов
/ 29 марта 2010

Просто используйте ToString () для объекта enum

1 голос
/ 29 марта 2010

Перечисление в C # используется для предоставления имен для некоторых известных значений, но в этом перечислении допустимо ЛЮБОЕ целочисленное значение, независимо от того, имеет ли оно именованный эквивалент или нет.

В вашем примере вы не назвали нулевое значение, но ваша переменная status инициализируется нулем. Я подозреваю, что это не изменилось от этого начального значения в тот момент, когда вы его прочитали. Следовательно, его строковое представление также равно 0, и вы будете анализировать ноль при его разборе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...