public static T ParseEnum <T>(string value, EnumParseBy parseBy) { if (parseBy == EnumParseBy.Code) { int result = int.Parse(value); //return (T)Convert.ChangeType(result, typeof(T)); return((T)Enum.ToObject(typeof(T), result)); } return(ParseEnum <T>(value)); }
public static T?ToEnum <T>(this string value, T?defaultValue, EnumParseBy parseBy) where T : struct { if (parseBy == EnumParseBy.Code) { if (value == null || value.Trim() == "") { return(defaultValue); } int result; //return int.TryParse(value, out result) ? (T)Enum.ToObject(typeof(T), result) : defaultValue; if (int.TryParse(value, out result)) { var a = (T)Enum.ToObject(typeof(T), result); return(a); } else { return(defaultValue); } } return(ToEnum <T>(value, defaultValue)); }
public static T ToEnum <T>(this string value, EnumParseBy parseBy) { return(ParseEnum <T>(value, parseBy)); }