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