我有一个类中声明的 1000 个 const 变量的列表。我在保存记录时存储 id,在检索时,我必须显示文本。例子
public const uint ZenitStPetersburg = 100769;
所以,在检索时,我必须展示 ZenitStPetersburg
现在,我正在做switch case,有没有什么优雅的解决方案来检索文本?
我有一个类中声明的 1000 个 const 变量的列表。我在保存记录时存储 id,在检索时,我必须显示文本。例子
public const uint ZenitStPetersburg = 100769;
所以,在检索时,我必须展示 ZenitStPetersburg
现在,我正在做switch case,有没有什么优雅的解决方案来检索文本?
是的,而不是变量,利用 a Dictionary<uint, string>
:
private Dictionary<uint, string> _constants = new Dictionary<uint, string>
{
{ 100769, "ZenitStPetersburg" }
}
然后在字典里查一下:
var val = _constants[uintValue];
一个类中有 1000 个常量?这似乎是一个糟糕的设计。
这就是枚举的用途。
public enum MyEnum
{
ZenitStPetersburg = 100769,
...
}
然后你使用类似这样的东西从值中获取它的字符串表示
string text = ((MyEnum)100769).ToString();//You're done
或者
string text = ((MyEnum)Enum.ToObject(MyEnum),100769).ToString();
如果您拥有源代码,为什么不尝试使用 anenum
呢?像这样的东西:
public enum Code : uint
{
ZenitStPetersburg = 100769,
....
}
然后,您可以通过.ToString()
对 enum 变量执行 a 轻松获取名称。像这样:
Code code = Code.ZenitStPetersburg;
string name = code.ToString();
你应该实施一个Dictionary<uint, string>
public IDictionary<uint, string> CodeStringDictionary;
然后你可以这样做:
if (CodeStringDictionary.ContainsKey(code))
return CodeStringDictionary[code];