到private Dictionary<string, int> 请问这个string值的大小跟效率有关系吗?比如说查找一个人的姓名,如果都是短姓名或者英文效率更快一点吗?比如说KEY都是6个字符的,和KEY都是23个字符的,从搜索效率上讲这种差距是好几倍呢?

解决方案 »

  1.   

    追求程序运行速度是没错的,如果key全部换成 a1...b1 开发效率和可维护性又怎么算呢?
      

  2.   

    Dictionary搜索的速度是O(1),和元素个数基本上无关,不过需要计算散列,调用Key.GetHashCode()方法,当然,string.GetHashCode方法速度和字符串长度成反比,但你可以实际测量一下,字符串长度相差好几倍,搜索速度差别很小,可能根本无法测量出来,因为Dictionary的搜索要做很多复杂的操作,GetHashCode只是其中很小一部分,GetHashCode快并不能让搜索节省多少时间,
      

  3.   

    我自己开发一个公司用的小程序,dictionary用得很多。使用起来很方便,速度也没见有什么影响。
      

  4.   

    不要想当然,string在任何语言中都是一个被高度优化的东西。