2013-06-03 46 views
6

tôi đã thực hiện các enum dưới đây:Nhận giá trị enum int bởi chuỗi

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

tôi muốn có được giá trị int enum bởi một chuỗi. Một cái gì đó như thế này:

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

Vì vậy, đầu vào của tôi là một chuỗi và đầu ra của tôi cần phải là một int.

Hoặc tốt hơn là triển khai từ điển có giá trị khóa. Chìa khóa sẽ là chuỗi và sẽ là một int.

+4

Đây có phải là mã Java không? Hơn nữa, hãy sử dụng thẻ 'java'. –

+0

có thể 'valueOf()' thay thế? –

Trả lời

6

Hãy thử với đoạn mã dưới đây.

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

Hãy cho tôi biết nếu có bất kỳ mối lo ngại nào.

+0

cảm ơn nó hoạt động .. – Ola

+0

nó đã giúp tôi.thanks –

0

Nếu tôi hiểu câu hỏi này chính xác tại sao không chỉ sử dụng trường hợp chuyển đổi?

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

Vì vậy, trong thực tế nó sẽ là một cái gì đó như thế này ...

int x = (int)setCaseOriginCode("Web"); // output would be 0 
CaseOriginCode y = setCaseOriginCode("Email"); // output would be CaseOriginCode.Email 
Các vấn đề liên quan