2013-06-03 16 views
6

I wprowadziły enum poniżej:Get enum int wartość poprzez ciąg

public enum CaseOriginCode 
    { 
     Web = 0, 
     Email = 1, 
     Telefoon = 2 
    } 

chciałbym uzyskać int wartość enum przez ciąg. Coś takiego:

public void setCaseOriginCode(string caseOriginCodeParam) 
{ 
    int caseOriginCode = CaseOriginCode.GetEnumByString(caseOriginCodeParam); 
    // do something with this integer 
} 

Moje dane wejściowe są ciągiem, a moje wyniki muszą być wartością int.

A może lepiej zaimplementować słownik z wartością kluczową. Klucz będzie ciągiem i będzie int.

+4

Czy to jest kod Java? Następnie użyj znacznika 'java'. –

+0

może zamiast tego 'valueOf()'? –

Odpowiedz

6

Spróbuj z poniższym fragmencie kodu.

public void setCaseOriginCode(string CaseOriginCode) 
{ 
    int caseOriginCode = (int)(CaseOriginCode)Enum.Parse(typeof(CaseOriginCode), CaseOriginCode); 
} 

Daj mi znać, jeśli masz jakiekolwiek wątpliwości.

+0

dzięki to działa .. – Ola

+0

pomógł mi.dzięki –

0

Jeśli dobrze rozumiem to pytanie, dlaczego nie po prostu użyć obudowy przełącznika?

public CaseOriginCode setCaseOriginCode(string caseOriginCodeParam) 
{ 
     switch(caseOriginCodeParam) 
     { 
      case "Web": 
       return CaseOriginCode.Web; 
      case "Email": 
       return CaseOriginCode.Email; 
      case "Telefoon": 
       return CaseOriginCode.Telefoon; 
      default: 
       return default(CaseOriginCode); 
     } 
} 

Więc w praktyce byłoby coś takiego ...

int x = (int)setCaseOriginCode("Web"); // output would be 0 
CaseOriginCode y = setCaseOriginCode("Email"); // output would be CaseOriginCode.Email