1

有没有办法在 C# 中实现反向枚举或常量文件?我有一个列表中的 ID,并希望将一个常量字符串映射到这个 ID。我在想这样的事情:

常规enum

public enum StaticUser
{
   DB = 1,
   Order = 2
}

我需要什么:

public enum StaticUser
{
   1 = DB,
   2 = Order
}
4

2 回答 2

1

所以你有一个枚举,

public enum StaticUser
{
    DB = 1,
    Order = 2
}

如果你想得到成员的名字,你可以这样做ToString

string staticUserString = ((StaticUser)1).ToString();

这会将文字转换1StaticUser然后用于ToString返回枚举类型的字符串表示形式。

这个例子之后staticUserString == 'DB'true.


如果你想要一个特定值的其他常量字符串,那么你需要你自己的转换函数,像这样,

public static string ToSpecialString(this StaticUser source)
{
    const string dBString = "Database"

    switch (source)
    {
        case StaticUser.DB:
            return dBString;

        default:
            return source.ToString();
    }
}

那么你可以做

string specialStaticUserString = ((StaticUser)1).ToSpecialString();

这个例子之后staticUserString == 'Database'true.

于 2012-11-22T10:15:59.700 回答
0

您可以简单地将 id 转换为枚举:

StaticUser user = (StaticUser)myId;
于 2012-11-22T10:12:17.167 回答