C# 反向常数

C# 反向常数,c#,enums,constants,C#,Enums,Constants,有没有办法在C#中实现反向枚举或常量文件?我有一个列表中的ID,希望将一个常量字符串映射到此ID。我想到的是这样的东西: 常规enum: public enum StaticUser { DB = 1, Order = 2 } 我需要的是: public enum StaticUser { 1 = DB, 2 = Order } 您只需将id强制转换为枚举: StaticUser user = (StaticUser)myId; 您只需将id强制转换为枚举: Sta

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

常规
enum

public enum StaticUser
{
   DB = 1,
   Order = 2
}
我需要的是:

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

您只需将id强制转换为枚举:

StaticUser user = (StaticUser)myId;

您只需将id强制转换为枚举:

StaticUser user = (StaticUser)myId;
所以你有一个枚举

public enum StaticUser
{
    DB = 1,
    Order = 2
}
如果要获取成员的名称,只需执行
ToString

string staticUserString = ((StaticUser)1).ToString();
这将文本
1
强制转换为
StaticUser
,然后使用
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

所以您有一个枚举

public enum StaticUser
{
    DB = 1,
    Order = 2
}
如果要获取成员的名称,只需执行
ToString

string staticUserString = ((StaticUser)1).ToString();
这将文本
1
强制转换为
StaticUser
,然后使用
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

很酷,就是这样。我不知道这样的演员阵容是可能的。酷,就是这样。我不知道这样的演员阵容是可能的。