以下是一些测试代码:
public enum ItemType : byte
{
[EnumMember(Value = "Computers & Electronics")]
ComputersAndElectronics,
[EnumMember(Value = "Music/Movies")]
MusicMovies,
Other
}
public void Test()
{
string testString1 = "Computers & Electronics";
ItemType itTest1 = ??? // should be assigned "ItemType.ComputersAndElectronics"
string testString2 = "Other";
ItemType itTest2 = ??? // should be assigned "ItemType.Other"
}
我将从外部源获取的值是EnumMember
属性中的字符串(最后一个枚举值除外,它可以直接用作参数名称)
我不确定如何将扩展的字符串解析为Enum类型。 Enum.Parse
似乎只解析包含枚举值的实际C#参数名称的字符串(例如,“ComputersAndElectronics”将正确解析,但“Computers& Electronics”不会。)
“其他”案例很重要,因为该项目没有EnumMember属性。