I have the following enum
public enum MaritalStatus
{
Married = 'M',
Widow = 'W',
Widower = 'R',
Single='S'
}
In one function I have for exp: 'S'
, and I need to have MaritalStatus.Single
.
How can I get the enum from the character value? For string I found this solution, but it gets exception for Char.
YourEnum foo = (YourEnum) Enum.Parse(typeof(YourEnum), yourString);
The enum values, though defined with char
s actually equal to the int
representation of that char. It is as if you defined it as following:
public enum MaritalStatus
{
Married = 77,
Widow = 87,
Widower = 82,
Single=83
}
Convert char
to int
and then assign to the enum:
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
After playing with it a bit and putting it into a one liner I see that even the conversion to an int
is not needed. All you need is to cast as the enum:
MaritalStatus status = (MaritalStatus)'M'; // MaritalStatus.Married
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With