作者Laluth (阳光)
看板C_Sharp
标题Re: [问题] Dictionary的效能请益
时间Mon Oct 29 11:10:37 2012
※ 引述《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
1F:推 stu87616:原来是这样 我现在写的专案都还太小 没考虑那麽多XD 10/30 14:28