Nom de chaîne enum de la valeur

J’ai une construction enum comme ceci:

public enum EnumDisplayStatus { None=1, Visible=2, Hidden=3, MarkedForDeletion=4 } 

Dans ma firebase database, les énumérations sont référencées par valeur. Ma question est, comment puis-je retourner la représentation numérique de l’énum au nom de la chaîne.

Par exemple, si vous donnez 2 le résultat devrait être Visible .

Vous pouvez reconvertir int en un membre d’énumération avec une dissortingbution simple, puis appeler ToSsortingng() :

 int value = GetValueFromDb(); EnumDisplayStatus enumDisplayStatus = (EnumDisplayStatus)value; ssortingng ssortingngValue = enumDisplayStatus.ToSsortingng(); 

Si vous devez obtenir une chaîne "Visible" sans obtenir l’instance EnumDisplayStatus , vous pouvez le faire:

 int dbValue = GetDBValue(); ssortingng ssortingngValue = Enum.GetName(typeof(EnumDisplayStatus), dbValue); 

Essaye ça:

 ssortingng m = Enum.GetName(typeof(MyEnumClass), value); 

vous pouvez simplement le lancer

 int dbValue = 2; EnumDisplayStatus enumValue = (EnumDisplayStatus)dbValue; ssortingng ssortingngName = enumValue.ToSsortingng(); //Visible 

ah .. kent m’a battu à ça 🙂

DB en C #

 EnumDisplayStatus status = (EnumDisplayStatus)int.Parse(GetValueFromDb()); 

C # à DB

 ssortingng dbStatus = ((int)status).ToSsortingng(); 

Utilisez ceci:

 ssortingng bob = nameof(EnumDisplayStatus.Visible); 

Il suffit de lancer le int sur le type d’énumération:

 EnumDisplayStatus status = (EnumDisplayStatus) statusFromDatabase; ssortingng statusSsortingng = status.ToSsortingng(); 

Je raccourcirais plus (la réponse de Kent Boogaart )

 var name = ((EnumType)value).ToSsortingng();