2
我正在开发Windows应用商店应用,我有这样的代码。Enum.Parse带注释
public enum Categories
{
Cat1,
Cat2,
Cat3
}
是否有任何选项string[] cats = {"categoty 1", "category 2", "category 3"}
转换为Enum
?
我使用EnumMember
属性的尝试:
[DataContract]
public enum Categories
{
[EnumMember(Value = "category 1")]
Cat1,
[EnumMember(Value = "category 2")]
Cat2,
[EnumMember(Value = "category 3")]
Cat3
}
...但仍然没有运气var cat = Enum.Parse(typeof(Categories), cats[0]);
:
Exception thrown: 'System.ArgumentException' in mscorlib.ni.dll
Requested value 'category 1' was not found.
任何想法?
与属性的方法,你需要使用反射来得到所有的枚举值的属性和比较,您的字符串。一个简单的方法(虽然可以说稍微不太容易维护)只包括一个将字符串映射到枚举值的“Dictionary”。 –
这个问题的答案可能会给你带来一些启示http://stackoverflow.com/questions/19767863/cant-get-enum-to-convert-to-json-properly-using-json-net –