-2

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

public const uint ZenitStPetersburg = 100769;

所以,在检索时,我必须展示 ZenitStPetersburg

现在,我正在做switch case,有没有什么优雅的解决方案来检索文本?

4

4 回答 4

5

是的,而不是变量,利用 a Dictionary<uint, string>

private Dictionary<uint, string> _constants = new Dictionary<uint, string>
{
    { 100769, "ZenitStPetersburg" }
}

然后在字典里查一下:

var val = _constants[uintValue];
于 2013-11-08T18:58:04.073 回答
4

一个类中有 1000 个常量?这似乎是一个糟糕的设计。

这就是枚举的用途。

public enum MyEnum
{
    ZenitStPetersburg = 100769,
    ...
}

然后你使用类似这样的东西从值中获取它的字符串表示

string text = ((MyEnum)100769).ToString();//You're done

或者

string text = ((MyEnum)Enum.ToObject(MyEnum),100769).ToString();
于 2013-11-08T19:00:33.337 回答
4

如果您拥有源代码,为什么不尝试使用 anenum呢?像这样的东西:

public enum Code : uint
{
    ZenitStPetersburg = 100769,
    ....
}

然后,您可以通过.ToString()对 enum 变量执行 a 轻松获取名称。像这样:

Code code = Code.ZenitStPetersburg;
string name = code.ToString();
于 2013-11-08T18:59:29.313 回答
3

你应该实施一个Dictionary<uint, string>

public IDictionary<uint, string> CodeStringDictionary;

然后你可以这样做:

if (CodeStringDictionary.ContainsKey(code))
   return CodeStringDictionary[code];
于 2013-11-08T18:57:57.000 回答