C#:如何使用备用字符串值解析Enum?

时间:2017-08-19 16:15:15

标签: c# enums

以下是一些测试代码:

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属性。

0 个答案:

没有答案