私はこのような列挙型構造を持っています:
public enum EnumDisplayStatus
{
None = 1,
Visible = 2,
Hidden = 3,
MarkedForDeletion = 4
}
私のデータベースでは、列挙は値によって参照されます。私の質問は、列挙型の数値表現を文字列名に戻すにはどうすればよいかということです。
たとえば2
、結果が。であると仮定しますVisible
。
int
単純なキャストでバックを列挙メンバーに変換してから、 ToString()
:を呼び出すことができます。
int value = GetValueFromDb();
var enumDisplayStatus = (EnumDisplayStatus)value;
string stringValue = enumDisplayStatus.ToString();
インスタンスを"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を列挙型にキャストするだけです。
EnumDisplayStatus status = (EnumDisplayStatus) statusFromDatabase;
string statusString = status.ToString();