2013-10-12 21 views
11

Tôi có một vấn đề khá thú vị, mà tôi không chắc chắn bạn thậm chí có thể giải quyết bằng cách sử dụng phương pháp này.Phân tích cú pháp enum khi chuỗi được hạ xuống

Tôi có một số chuỗi, tất cả đều là chữ thường. Hãy gọi nó là businesslaw. Bây giờ, tôi có loại enum, trong đó giá trị là BusinessLaw.

Điều tôi muốn làm là chuyển đổi chuỗi doanh nghiệp, thành loại enum BusinessLaw.

Thông thường tôi sẽ tiếp cận nó bằng cách làm này:

return (EnumType) (Enum.Parse(typeof (EnumType), value)); 

Tuy nhiên, đó là không thể khi có một số khác biệt như vậy.

Bạn sẽ giải quyết vấn đề này như thế nào? Hay là tự nhiên, không thể giải quyết được?

Trả lời

16

Bạn có thể sử dụng the overload of Enum.Parse với một tham số chính thức để chỉ trường hợp nhạy cảm:

return (EnumType) (Enum.Parse(typeof (EnumType), value, false)); 

Có một tương tự TryParse overload.

Tuy nhiên, hãy nhớ rằng có thể được nhiều giá trị enum với cùng tên khác hơn là trường hợp:

public enum Awkward 
{ 
    FOO, 
    foo, 
    Foo, 
    fOO 
} 

Bạn có lẽ nên tránh việc các giá trị enum như vậy nếu có thể :)

+0

Và có chúng tôi có câu trả lời hoàn hảo. Cảm ơn rất nhiều vì đã cứu ngày của tôi! May mắn là kịch bản có thể không có :-) –

Các vấn đề liên quan