我有以下枚举
public enum MaritalStatus
{
Married = 'M',
Widow = 'W',
Widower = 'R',
Single='S'
}
在一个函数中,我有 exp: 'S'
,我需要有 MaritalStatus.Single
。
如何从字符值中获取枚举值? 对于字符串,我找到了这个解决方案,但它对 Char 有异常(exception)。
YourEnum foo = (YourEnum) Enum.Parse(typeof(YourEnum), yourString);
最佳答案
虽然用 char
定义的枚举值实际上等于该 char 的 int
表示。就好像您将其定义如下:
public enum MaritalStatus
{
Married = 77,
Widow = 87,
Widower = 82,
Single=83
}
将char
转换为int
,然后赋值给枚举:
int m = 'M'; // char of `M` equals to 77
MaritalStatus status = (MaritalStatus)m;
Console.WriteLine(status == MaritalStatus.Married); // True
Console.WriteLine(status == MaritalStatus.Single); // False
在尝试了一下并将其放入单行后,我发现甚至不需要转换为 int
。您只需要转换为枚举:
MaritalStatus status = (MaritalStatus)'M'; // MaritalStatus.Married
关于c# - 如何从 char 值中检索 Enum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255376/