2012-11-06 7 views
2

열거 형과 비교할 문자열이있는 경우 어떻게 열거 형에서 인덱스 정수 (이 경우 0)를 가져올 수 있습니까?문자열에서 열거 형 인덱스 가져 오기

열거 :

public enum Animals 
{ 
    Dog = 0, 
    Cat = 1 
} 

string myAnimal = "Dog"; 

은 분명히 다음 줄이 작동하지 않습니다하지만 당신은 내가 무엇을 달성하고자하는 이해하는 데 도움이 될 수 있습니다 : 이것처럼

int animalNumber = (int)Animals.[myAnimal]; 
+0

http://stackoverflow.com/questions/6778213/get-an-enumerated-field-from-a-string?rq=1 –

답변

8

를?

int animalNumber = (int)Enum.Parse(typeof(Animals), "Dog"); 
+0

매력처럼 작동합니다. 고맙습니다! –

3
Types t; 
if(Enum.TryParse(yourString, out t)) // yourString is "Dog", for example 
{ 
    // use t   // In your case (int)t 
} 
else 
{ 
    // yourString does not contain a valid Types value 
} 

또는 중복의 가능성

try 
{ 
    Types t = (Types)Enum.Parse(typeof(Types), yourString); 
    // use t   // In your case (int)t 
} 
catch(ArgumentException) 
{ 
    // yourString does not contain a valid Types value 
}