C# Parsing string representation of an enum field

Many time we need to parse enum fields string values to type. For this I have written one generic utility method which will do this safely.

Utility method to parse enum string

public static T ParseEnum<T>(string value, T defaultValue) where T : struct, IConvertible
{
    if (!typeof(T).IsEnum)
        throw new ArgumentException("T must be an enumerated type");

    if (string.IsNullOrEmpty(value))
        return defaultValue;

    foreach (T item in Enum.GetValues(typeof(T)))
    {
        if (item.ToString().Equals(value, StringComparison.OrdinalIgnoreCase))
            return item;
    }
    return defaultValue;
}

Example to using this method for Rights enum.

Rights right = Utils.ParseEnum<Rights>(r.Trim(), Rights.None);

Leave a Reply

Your email address will not be published. Required fields are marked *