segunda-feira, 12 de dezembro de 2011

Função genérica para converter string num enumerado.

Uma  forma genérica para converter uma string num Enum, uso isto na forma de uma extensão.
Exemplo de utilização:
string s = "Primeiro";
PosicaoEnum teste = s.ToEnum<PosicaoEnum>();

public static T ToEnum<T>(this string s)
{
    T[] possibleValues = (T[]) Enum.GetValues(typeof(T));
    foreach(T val in possibleValues){
        string valString = val.ToString();
        if (valString == s)
        {
            return val;
        }
    }
    throw new ArgumentException(
        string.Format(
            "Cannot find \"{0}\" in the enum \"{1}\".",
            s, typeof(T).ToString()));
}

Sem comentários:

Enviar um comentário