日期:2014-05-18  浏览次数:20943 次

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

------解决方案--------------------
Dictionary搜索的速度是O(1),和元素个数基本上无关,不过需要计算散列,调用Key.GetHashCode()方法,

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

因为Dictionary的搜索要做很多复杂的操作,GetHashCode只是其中很小一部分,GetHashCode快并不能让搜索节省多少时间,