2013-10-12 19 views
11

Oldukça eğlenceli bir sorunum var, bu yaklaşımı kullanarak bile çözebileceğinizden emin değilim.Dize indirildiğinde enum ayrıştırılıyor

Bazı küçük harfleri var, bu da küçük harf. Sadece businesslaw diyelim. Şimdi, değerin BusinessLaw olduğu bir enum türüm var.

Yapmak istediğim şey, businesslaw dizesini bir BusinessLaw enum türüne dönüştürmektir.

Normalde buna yaparak yaklaşacağını söyledi:

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

Ancak bu mümkün değil bazı durum fark varken.

Bu sorunu nasıl çözerdiniz? Yoksa doğası gereği, çözülemez mi?

cevap

16

Sen küçük harf duyarlılığı göstermek için son bir parametreyle the overload of Enum.Parse kullanabilirsiniz:

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

benzer TryParse overload var.

Ancak hali hariç aynı ada sahip birden enum değerleri olabileceğini aklınızda bulundurun:

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

Muhtemelen mümkünse :) orada

+0

Ve böyle enum değerlerine sahip kaçınmalıdır mükemmel bir cevabımız var. Günümü kurtardığın için çok teşekkürler! Neyse ki senaryo senaryosu yok :-) –