Programowanie w języku C# » FAQ

Metoda TryParseEnum

  • 1 komentarz
  • 813 odsłon
  • Oceń ten tekst jako pierwszy
W standardowej bibliotece .NET nie ma metody, która sprawdzałaby, czy można dany string zamienić na konkretny enum. Poniżej implementacja "brakującej" metody (dwie wersje, w razie potrzeby).
        public static bool TryParseEnum<T>(string value, out T result) {
            return TryParseEnum<T>(value, out result, StringComparison.CurrentCulture);
        }
 
        public static bool TryParseEnum<T>(string value, out T result, StringComparison comparison) {
            result = default(T);
            foreach(string item in Enum.GetNames(typeof(T))) {
                if(item.Equals(value, comparison)) {
                    result = (T)Enum.Parse(typeof(T), value, true);
                    return true;
                }
            }
            return false;
        }

1 komentarz

Intelli 2009-01-03 05:19

Nieprawda. Począwszy od wersji 1.0 .NET ma taką metodę.

bool isDefined = System.Enum.IsDefined(typeof(EnumType), value);

I po sprawie.