如何检索const变量文本

时间:2013-11-08 18:53:26

标签: c#

我有一个在类中声明的1000个const变量的列表。我在保存记录时存储id,在检索时,我必须显示文本。实施例

public const uint ZenitStPetersburg = 100769;

因此,在检索时,我必须显示ZenitStPetersburg

现在,我正在做切换案例,是否有任何优雅的解决方案来检索文本?

4 个答案:

答案 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];