假设我有一些枚举。例如
enum MyEnum
{
Item1,
Item2,
Item3
}
我想为枚举中的每个项目“缓存”一些东西。所以我确实有两个选择。
字典选项:
Dictionary<MyEnum, /*someStructure*/> cache = new Dictionary<MyEnum, /*someStructure*/>>();
或数组选项:
/*someStructure*/[] cache = new /*someStructure*/[Enum.GetValues(typeof(MyEnum)).Length]
这些选项的优缺点是什么?在我看来Dictionary
,选项更具可读性和易于使用,但比Array
选项慢。
但Dictionary
实际上会更慢吗?可能Dictionary
“聪明”足以理解什么时候enum
用作键,那么只有“数组”可以用作底层实现?
所以问题是——“丑陋的array
选择”会比“直截了当”的Dictionary
选择更快吗?好吧,也许我可以测试一下……但是现在当我写下这个问题时,我想知道其他人的想法。