510

私はこのような列挙型構造を持っています:

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

私のデータベースでは、列挙は値によって参照されます。私の質問は、列挙型の数値表現を文字列名に戻すにはどうすればよいかということです。

たとえば2、結果が。であると仮定しますVisible

4

14 に答える 14

661

int単純なキャストでバックを列挙メンバーに変換してから、 ToString():を呼び出すことができます。

int value = GetValueFromDb();
var enumDisplayStatus = (EnumDisplayStatus)value;
string stringValue = enumDisplayStatus.ToString();
于 2008-11-21T16:25:37.303 に答える
222

インスタンスを"Visible"取得せずに文字列を取得する必要がある場合は、次のようにします。EnumDisplayStatus

int dbValue = GetDBValue();
string stringValue = Enum.GetName(typeof(EnumDisplayStatus), dbValue);
于 2012-12-14T13:07:39.473 に答える
186

これを試して:

string m = Enum.GetName(typeof(MyEnumClass), value);
于 2012-01-02T09:00:20.023 に答える
27

あなたはそれをキャストすることができます

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

ああ..ケントはそれに私を打ち負かした:)

于 2008-11-21T16:26:36.647 に答える
15

DB から C#

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

C# から DB

string dbStatus = ((int)status).ToString();
于 2008-11-21T16:29:19.933 に答える
3

intを列挙型にキャストするだけです。

EnumDisplayStatus status = (EnumDisplayStatus) statusFromDatabase;
string statusString = status.ToString();
于 2008-11-21T16:27:12.247 に答える