2013-06-03 56 views
6

獲取枚舉int值我已經實現以下枚舉:通過串

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

我想通過一個字符串來獲取枚舉int值。就像這樣:

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

所以我的輸入是一個字符串,我的輸出需要是一個int。

或者是用鍵值實現字典更好嗎?關鍵將是字符串,並且將是一個int。

+4

這是Java代碼?請使用'java'標籤。 – 2013-06-03 07:29:45

+0

也許'valueOf()'而不是? –

回答

6

請與下面的代碼片段嘗試。

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

讓我知道是否有任何顧慮。

+0

謝謝它的工作.. – Ola

+0

它幫助我。謝謝 –

0

如果我正確理解這個問題,爲什麼不直接使用開關盒呢?

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

所以,實際上,它會是這樣的......

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