Enum<T>.Parse() and Enum<T>.TryParse()
Parses the specified string value into the Enum type passed. Also contains a bool to determine whether or not the case should be ignored.
Source
public static class Enum<T>
{
public static T Parse(string value)
{
return Enum<T>.Parse(value, true);
}
public static T Parse(string value, bool ignoreCase)
{
return (T)Enum.Parse(typeof(T), value, ignoreCase);
}
public static bool TryParse(string value, out T returnedValue)
{
return Enum<T>.TryParse(value, true, out returnedValue);
}
public static bool TryParse(string value, bool ignoreCase, out T returnedValue)
{
try
{
returnedValue = (T)Enum.Parse(typeof(T), value, ignoreCase);
return true;
}
catch
{
returnedValue = default(T);
return false;
}
}
}
Example
//Enum
public enum MyEnum
{
Foo,
Bar,
}
MyEnum a = Enum<MyEnum>.Parse("foo"); //Returns MyEnum.Foo
MyEnum b = Enum<MyEnum>.Parse("foo", false); //Fails as the parse is case sensitive
//Try Parse
MyEnum c = MyEnum.Foo;
if(Enum<MyEnum>.TryParse("Fi", out c) == false)
{
//throw an error
}