推 stu87616:原來是這樣 我現在寫的專案都還太小 沒考慮那麼多XD 10/30 14:28
※ 引述《stu87616 (以光為名)》之銘言:
: 有個專案要做整數對應字串的程序,
: 我原本是很笨的直接寫個switch讓數字下去跑,
: 後來教授跟我提過可以試試看用Dictionary,
: 我才去查了一下這個結構是怎麼用的
: 寫了一個很簡單的Dictionary(只取對應的功能)
: Dictionary <int, string> Dic = new Dictionary<int, string>();
: private String Find(int num)
: {
: if (Dic.ContainsKey(num))
: return Dic[num];
: else
: return "Not Found";
: }
: 應該夠簡單了,只是我用這個結構下去跑我原本的判斷式,
: 作用正常,但效能大概低了一倍左右...
: 雖然也只是兩毫秒之內的差距而已,
: 不過...因為我一直都是很不喜歡用switch寫一長串的人,
: 很期待有個東西可以取代它,結果這個新玩意讓我失望了T_T
: 所以,Dictionary的長處就是可以自由增加這點了嗎?
: 比對速度上反而還是輸給老牌的switch?
: 我應該沒有理解錯誤吧ˊ_>ˋ
Dictionary 這個東西
最主要的功能其實不是拿來取代 switch 的
它是拿來取代arraylist 這個東西的
Dictionary 最大的好處是在尋找物件的時候速度快
不管陣列大小 速度都是一樣的(印象中)
但是如果在陣列很小的情況下 優勢就不明顯 可能還會比較慢
有興趣的話 可以把項目加到100倍以上做測試
如果只是單純 要整數對應字串的話
也許直接用資源檔Resource 會方便一點(連程式都不用寫了XD)
但是效率的話就不保證了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.63.35.93