从值中枚举string名称
我有一个像这样的枚举结构:
public enum EnumDisplayStatus { None=1, Visible=2, Hidden=3, MarkedForDeletion=4 }
在我的数据库中,枚举是通过值引用的。 我的问题是,我怎样才能将枚举的数字表示返回到string名称。
例如,给定2
,结果应该是Visible
。
你可以通过简单的转换将int
转换回枚举成员,然后调用ToString()
:
int value = GetValueFromDb(); EnumDisplayStatus enumDisplayStatus = (EnumDisplayStatus)value; string stringValue = enumDisplayStatus.ToString();
如果你需要得到一个string"Visible"
而不需要EnumDisplayStatus
实例,你可以这样做:
int dbValue = GetDBValue(); string stringValue = Enum.GetName(typeof(EnumDisplayStatus), dbValue);
尝试这个:
string m = Enum.GetName(typeof(MyEnumClass), value);
你可以投它
int dbValue = 2; EnumDisplayStatus enumValue = (EnumDisplayStatus)dbValue; string stringName = enumValue.ToString(); //Visible
啊..肯特击败了我:)
DB到C#
EnumDisplayStatus status = (EnumDisplayStatus)int.Parse(GetValueFromDb());
C#到DB
string dbStatus = ((int)status).ToString();
只需将int转换为枚举types:
EnumDisplayStatus status = (EnumDisplayStatus) statusFromDatabase; string statusString = status.ToString ();