假設我有一些枚舉。例如存儲數組中的枚舉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