假设我有一些枚举。例如存储数组中的枚举VS存储在字典中?
enum MyEnum
{
Item1,
Item2,
Item3
}
我想为枚举中的每个项目“缓存”一些东西。所以我有两个选择。
字典选项:
Dictionary<MyEnum, /*someStructure*/> cache = new Dictionary<MyEnum, /*someStructure*/>>();
或阵列选项:
/*someStructure*/[] cache = new /*someStructure*/[Enum.GetValues(typeof(MyEnum)).Length]
什么是每个选项的prons的优劣呢?在我看来,Dictionary
选项更易读易用,但比Array
选项慢。
但Dictionary
实际上会慢吗?可能Dictionary
是“聪明的”,足以理解当enum
被用作关键字时,那么只需使用“数组”作为下属实现?
所以问题是 - 将“丑陋array
选项”比“直接”Dictionary
选项更快?好吧,我可以测试一下......但是现在当我写下这个问题时,我想知道别人怎么想。
我正在优化我的程序中的bottlneck。我花了18微秒来购买我想花费1-2微秒的东西。我发现'Dictionary'在这个部分被用到了很多,所以现在我想我应该试着替换它。带有'int32'键的字典看起来很奇怪,你为什么这么说? – javapowered
在你的情况下,18个微型金钱太多了?你正在开发什么样的程序? – Steven
但正如我所说,更改字典以再次保存'int'键和配置文件。这应该会有很大的不同。 – Steven