Ho il seguente enumeratore i cui valori sono ripresi in un campo di un database
Quando vado a leggere i valori dal database ottengo una stringa che non riesco a convertire in un valore dell'enumeratore; ho quindi creato il seguente ciclo per convertire la stringa nell'enumeratore:codice:public enum SwitchField { UNDEFINED, EF, HIDE, GENERIC, SELECT, OPTION, REQUEST, TEXTAREA, CURRENCY, INTEGER, PROG }
Il codice sembra funzionare correttamente, l'unica anomalia è che, nel caso in cui la variabile 'strSwitchField' è uguale a una stringa vuota, la variabile switchField assume il primo valore dell'enumeratore.codice:string strSwitchField = valoreOttenutoDalDatabase; SwitchField switchField; foreach (int sf in Enum.GetValues(typeof(SwitchField))) { if (strSwitchField == Enum.GetName(typeof(SwitchField),sf)) { switchField = (SwitchField)Enum.ToObject(typeof(SwitchField),sf); } }
Secondo voi il procedimento è corretto oppure ci sono altri sistemi più efficienti per raggiungere lo stesso risultato?

Rispondi quotando