dictionary效率问题

qingtianzhuren6 2012-02-01 12:48:33
到private Dictionary<string, int> 请问这个string值的大小跟效率有关系吗?比如说查找一个人的姓名,如果都是短姓名或者英文效率更快一点吗?比如说KEY都是6个字符的,和KEY都是23个字符的,从搜索效率上讲这种差距是好几倍呢?
...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
就算差100倍,对你的程序的整体效率的影响也不足万分之一。你测试的时候是按照“一块”程序的用户体验去测试呢?还是纠结于一两个语句呢?

自己测试并给出数据,不用求人。
threenewbee 2012-02-01
  • 打赏
  • 举报
回复
不要想当然,string在任何语言中都是一个被高度优化的东西。
Dogfish 2012-02-01
  • 打赏
  • 举报
回复
我自己开发一个公司用的小程序,dictionary用得很多。使用起来很方便,速度也没见有什么影响。
Dogfish 2012-02-01
  • 打赏
  • 举报
回复
数据量不是很大的话,这个可以省略。
stonespace 2012-02-01
  • 打赏
  • 举报
回复
所以你开发的时候,绝对没有必要为了提高速度而减少字符串长度,减少字符串长度所提高的速度,你无法感觉到,即使你用程序去测量,可能也测量不出来,因为它提高的速度实在太小,
stonespace 2012-02-01
  • 打赏
  • 举报
回复
Dictionary搜索的速度是O(1),和元素个数基本上无关,不过需要计算散列,调用Key.GetHashCode()方法,

当然,string.GetHashCode方法速度和字符串长度成反比,但你可以实际测量一下,字符串长度相差好几倍,搜索速度差别很小,可能根本无法测量出来,

因为Dictionary的搜索要做很多复杂的操作,GetHashCode只是其中很小一部分,GetHashCode快并不能让搜索节省多少时间,
caoqinghua 2012-02-01
  • 打赏
  • 举报
回复
追求程序运行速度是没错的,如果key全部换成 a1...b1 开发效率和可维护性又怎么算呢?

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧