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