How can I get Enum from char value? (WITH#)

I have the following listing

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 an enumeration from a character value ? for the string, I found this solution, but it gets an exception for Char.

YourEnum foo = (YourEnum) Enum.Parse(typeof(YourEnum), yourString);

Any help?

+4
source share
3 answers

I think I found one solution for this:

   (MaritalStatus)Enum.ToObject(typeof(MaritalStatus), 'S')

He gets me . I think that

Enum.ToObject (enumType, byte) is a signature.

+2
source

, char, int char. :

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
+5

.

string name =   ((MaritalStatus)'S').ToString();
string enumName =  Enum.GetName(typeof(MaritalStatus), 'S');

# 6.0 nameof

+1

Source: https://habr.com/ru/post/1658895/


All Articles