2013-10-12 13 views
11

Ho un problema piuttosto divertente, che non sono sicuro che sia possibile risolvere utilizzando questo approccio.Pana enum quando la stringa viene abbassata

Ho una stringa, che è tutto in minuscolo. Chiamiamolo semplicemente businesslaw. Ora, ho un tipo enum, dove il valore è BusinessLaw.

Quello che voglio fare è convertire la stringa businesslaw in un tipo enum BusinessLaw.

Normalmente avrei avvicino in questo modo:

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

Tuttavia, ciò non è possibile se non v'è una certa differenza caso.

Come risolverebbe questo problema? O è per sua natura irrisolvibile?

risposta

16

È possibile utilizzare the overload of Enum.Parse con un parametro finale per indicare maiuscole e minuscole:

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

C'è un simile TryParse overload.

Tuttavia, tenere a mente che ci potrebbe essere presenti più valori enum con lo stesso nome diverso da caso:

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

Probabilmente si dovrebbe evitare di avere tali valori enum, se possibile :)

+0

E c'è abbiamo la risposta perfetta Grazie mille per aver salvato la mia giornata! Fortunatamente lo scenario potrebbe non essere lì :-) –

Problemi correlati