Nome stringa Enum da Valore

Ho un costrutto enum come questo:

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

Nel mio database, le enumerazioni sono referenziate per valore. La mia domanda è, come posso trasformare la rappresentazione numerica dell’enum nel nome della stringa.

Ad esempio, dato 2 il risultato dovrebbe essere Visible .

È ansible convertire l’ int nuovo in un membro di enumerazione con un cast semplice e quindi chiamare ToString() :

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

Se hai bisogno di ottenere una stringa "Visible" senza ottenere EnumDisplayStatus istanza EnumDisplayStatus puoi farlo:

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

Prova questo:

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

puoi solo lanciarlo

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

ah .. kent mi ha battuto 🙂

Da DB a C #

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

Da C # a DB

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

Usa questo:

 string bob = nameof(EnumDisplayStatus.Visible); 

Basta lanciare l’int al tipo di enumerazione:

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

Mi piacerebbe accorciare di più (la risposta di Kent Boogaart )

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