namespace System { public static class EnumExtensions { /// <summary> /// Tries the parse. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="theEnum">The enum.</param> /// <param name="valueToParse">The value to parse.</param> /// <param name="returnValue">The return value.</param> /// <returns></returns> public static bool TryParse<T>(this Enum theEnum, string valueToParse, out T returnValue) { returnValue = default(T); int intEnumValue; if (Int32.TryParse(valueToParse, out intEnumValue)) { if (Enum.IsDefined(typeof (T), intEnumValue)) { returnValue = (T) (object) intEnumValue; return true; } } return false; } } }