2

Possible Duplicate:
How do I Convert a string to an enum in C#?

I have an enum of type int:

public enum BlahType { blah1 = 1, blah2 = 2 } 

If I have a string:

string something = "blah1" 

How can I convert this to BlahType?

0

4 Answers 4

8

I use a function like this one

public static T GetEnumValue<T>(string value) { return (T)Enum.Parse(typeof(T), value); } 

And you can call it like this

BlahType value = GetEnumValue<BlahType>("Blah1"); 
Sign up to request clarification or add additional context in comments.

Comments

7

You want Enum.Parse

BlahType blahValue = (BlahType) Enum.Parse(typeof(BlahType), something); 

Comments

2

I use this function to convert a string to a enum; then you can cast to int or whatever.

public static T ToEnum<T>(string value, bool ignoreUpperCase) where T : struct, IComparable, IConvertible, IFormattable { Type enumType = typeof (T); if (!enumType.IsEnum) { throw new InvalidOperationException(); } return (T) Enum.Parse(enumType, value, ignoreUpperCase); } 

3 Comments

Nice extension method. I just wonder why should it ignore uppercase only rather than just ignore case? ;)
When I first did that function, I though about checking for if the given type was an enum. I gave up after discovering (with reflector) that Enum.Parse already do these check (and more) and throw a ArgumentException if the type is not an enum.
sorry, that's a spanish translation issue, it's just a wrapper for the overload of Enum.Parse
1
 public enum BlahType { blah1 = 1, blah2 = 2 } string something = "blah1"; BlahType blah = (BlahType)Enum.Parse(typeof(BlahType), something); 

If you are not certain that the conversion will succeed - then use TryParse instead.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.