有没有办法在C#中实现反向枚举或常量文件?我有一个List的ID,并希望将一个常量字符串映射到此ID。我在考虑这样的事情:
常规enum
:
public enum StaticUser
{
DB = 1,
Order = 2
}
我需要什么:
public enum StaticUser
{
1 = DB,
2 = Order
}
答案 0 :(得分:1)
所以你有一个枚举,
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
。
答案 1 :(得分:0)
您可以简单地将id转换为枚举:
StaticUser user = (StaticUser)myId;