C# FAQ

Metoda TryParseEnum

Deti

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;
        }
FAQ

1 komentarz

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

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

I po sprawie.