2014-01-14 4 views
4

Если бы я имел значение: «собака» и перечисление:Как получить Int для значения перечисления в Перечисления

public enum Animals 
{ 
    dog = 0 , 
    cat = 1 , 
    rat = 2 
} 

, как я мог бы получить 0 для значения «собака» от животных?

EDIT:

Я интересно, если есть индекс, как Вход в помещение. Больше commonn: как я могу получить целое число для строкового значения.

+3

(int) Animals.dog – Raja

ответ

4

Чтобы ответить на ваш вопрос «как я могу получить целое число для значения строки»:

Для преобразования из строки в перечисление, а затем преобразовать полученное перечисление к междунар, вы можете сделать это:

public enum Animals 
{ 
    dog = 0, 
    cat = 1, 
    rat = 2 
} 

... 

Animals answer; 

if (Enum.TryParse("CAT", true, out answer)) 
{ 
    int value = (int) answer; 
    Console.WriteLine(value); 
} 

Кстати, нормальное перечисление именовании диктует, что вы не должны множественное число вашего имени перечисления, если оно не представляет значение флагов (полномочия двух), где может быть установлены несколько бит - так что вы должны назвать его Animal, не Animals.

7

Просто отбрасывать ваше значение перечисления в целом:

Animals animal = Animals.dog; 
int value = (int)animal; // 0 

EDIT: если выяснится, что у вас есть имя значения перечисления, а затем разобрать перечислимое значение и приведение его в целом:

int value = (int)Enum.Parse(typeof(Animals), "dog"); 
+0

У него есть строка, а не перечисление. –

+0

@TuTran, можете ли вы, чтобы он редактировал вопрос? –

+0

Я думаю, что вопрос OP ясен: «Как я мог получить 0 для значения« dog »' –

3

О нас: var r = (int)Animals.dog

+0

Нужно разбирать '' собаку'' '' '' Животные.dog' first –

+0

@Tu Tran - действительно, ты уверен? Я не согласен ... Попробуйте сами. –

+0

Абсолютно уверен. См. Ответ Мэтью Уотсона, я полностью согласен с ним. –

5

Вы можете либо cast it to Int, либо перебрать все значения, используя метод Enum.GetValues, который извлекает arra y значений констант в указанной нумерации.

Смежные вопросы