Convert.ChangeType How to convert from String to Enum

Total Post:96

Points:676
C# 
C#
 4753  View(s)
Ratings:
Rate this:

Convert.ChangeType How to convert from String to Enum

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

When I call Convert.ChangeType, the system throws an exception on the impossibility of conversion from String to Category. How to do the conversion? Maybe I need to implement any converter for my type?

  1. Post:412

    Points:2888
    Re: Convert.ChangeType How to convert from String to Enum

    Hi Ben,


    Use Enum.Parse method for this.

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

      Modified On Apr-04-2018 01:52:01 AM

Answer