创建string
到int
的常量(在运行时永不改变)映射的最有效方法是什么?
我试过使用 const Dictionary ,但这没有成功。
我可以实现 immutable wrapper具有适当的语义,但这似乎仍然不完全正确。
对于那些提出问题的人,我正在实现 IDataErrorInfo在生成的类中,我正在寻找一种方法来将 columnName 查找到我的描述符数组中。
我不知道(测试时打字错误!d'oh!)switch 接受字符串,所以这就是我要使用的。谢谢!
最佳答案
在 C# 中创建真正的编译时生成的常量字典并不是一项简单的任务。实际上,这里没有一个答案真正实现了这一点。
有一种解决方案可以满足您的要求,但不一定是好的解决方案;请记住,根据 C# 规范,switch-case 表被编译为常量哈希跳转表。也就是说,它们是常量字典,而不是一系列 if-else 语句。所以考虑这样一个 switch-case 语句:
switch (myString)
{
case "cat": return 0;
case "dog": return 1;
case "elephant": return 3;
}
这正是您想要的。是的,我知道,这很丑。
关于c# - 在 C# 中创建常量字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/268084/