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