type into from enum convert c# enums converter

into - string to enum c#



Convert.ChangeType Cómo convertir de String a Enum (2)

public static T Convert<T>(String value) { return (T)Convert.ChangeType(value, typeof(T)); } public enum Category { Empty, Name, City, Country } Category cat=Convert<Category>("1");//Name=1

Cuando llamo a Convert.ChangeType , el sistema lanza una excepción sobre la imposibilidad de conversión de Cadena a Categoría. ¿Cómo hacer la conversión? ¿Tal vez necesito implementar algún convertidor para mi tipo?


Utilice el método Enum.Parse para esto.

public static T Convert<T>(String value) { if (typeof(T).IsEnum) return (T)Enum.Parse(typeof(T), value); return (T)Convert.ChangeType(value, typeof(T)); }


Versión .Net Core:

public static T Convert<T>(string value) { if (typeof(T).GetTypeInfo().IsEnum) return (T)Enum.Parse(typeof(T), value); return (T)System.Convert.ChangeType(value, typeof(T)); }