Enum String Name from Value

Tengo una construcción enum como esta:

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

En mi base de datos, las enumeraciones se referencian por valor. Mi pregunta es, ¿cómo puedo convertir la representación numérica de la enumeración en el nombre de la cadena?

Por ejemplo, dado 2 el resultado debería ser Visible .

Puede convertir el int nuevamente en un miembro de enumeración con un simple molde, y luego llamar a ToString() :

 int value = GetValueFromDb(); EnumDisplayStatus enumDisplayStatus = (EnumDisplayStatus)value; string stringValue = enumDisplayStatus.ToString(); 

Si necesita obtener una cadena "Visible" sin obtener la instancia de EnumDisplayStatus , puede hacer esto:

 int dbValue = GetDBValue(); string stringValue = Enum.GetName(typeof(EnumDisplayStatus), dbValue); 

Prueba esto:

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

puedes simplemente lanzarlo

 int dbValue = 2; EnumDisplayStatus enumValue = (EnumDisplayStatus)dbValue; string stringName = enumValue.ToString(); //Visible 

ah … kent me ganó a eso 🙂

DB a C #

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

C # a DB

 string dbStatus = ((int)status).ToString(); 

Utilizar esta:

 string bob = nameof(EnumDisplayStatus.Visible); 

Simplemente transfiera el int al tipo de enumeración:

 EnumDisplayStatus status = (EnumDisplayStatus) statusFromDatabase; string statusString = status.ToString(); 

Acortaría más (respuesta de Kent Boogaart )

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