Nome da cadeia de enumeração a partir do valor

Eu tenho uma construção enum como esta:

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

No meu database, as enumerações são referenciadas por valor. Minha pergunta é, como posso transformar a representação numérica do enum de volta para o nome da string.

Por exemplo, dado 2 o resultado deve ser Visible .

Você pode converter o int volta para um membro de enumeração com uma conversão simples e, em seguida, chamar ToString() :

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

Se você precisar obter uma string "Visible" sem obter a instância EnumDisplayStatus poderá fazer isso:

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

Tente isto:

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

você pode simplesmente lançar

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

ah .. kent me bateu para ele 🙂

DB para C #

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

C # para DB

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

Usa isto:

 string bob = nameof(EnumDisplayStatus.Visible); 

Apenas lance o int para o tipo de enumeração:

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