我有以下枚举:

public enum GenderContract
{
    Male,
    Female,
    Unknown
}


但是我从客户那里得到了“ M”,“ F”和“ U”的值。

有没有一种通用的方法可以将枚举的第一个字符转换为实际的枚举项? (假设名称没有冲突?)

我有几种这样的方案,我希望能够有一种通用的方式将部分匹配转换为枚举(而不是仅仅执行switch语句或类似的操作)。

最佳答案

简短的解决方案是使用'M','F'和'U'的char值

public enum GenderContract
{
    Male = 77, // 'M'
    Female = 70, // 'F'
    Unknown = 80 // 'U'
};


那你只需要做

GenderContract c1 = (GenderContract)'M';
GenderContract c2 = (GenderContract)'F';
GenderContract c3 = (GenderContract)'U';

10-07 16:49