本帖最后由 Suriyel 于 2012-07-09 05:41:21 编辑

解决方案 »

  1.   

    循环千万次测试
    就像那个蛋疼的for语句的帖子一样
      

  2.   

    通过测试,在多次循环引用下,switch效率更好一些。所以我比较郁闷了,不知道导致这个差异的原因在哪
      

  3.   

    另外,把Hashtable扔到垃圾桶吧
    Dictionary啊Dictionary
      

  4.   


    真能扯。假设“日常编码中”将动态地把几百个以上的数据放入Dictionary<K,T>你,写给我硬编码一个几百个case的switch语句出来我看看?你再给我演示如何动态地编写出所谓的switch语句?你这个说法,就好象是关公战凤姐,哪儿也不挨,被你应扯在一起给比较什么“性能”了!
      

  5.   

    理论上当然是hash效率高,它的效率是O(1),而switch相当于顺序查找,效率是O(n/2),不过散列计算需要时间,所以如果要查找的集合元素很少的时候,顺序查找switch速度反而更高,不过楼主的查找对象只有10个元素,应该差不多,
      

  6.   

    只有10个元素就不要考虑效率的问题,怎样做效率都很高都差不多,如果元素很多,上百上千,那么当然用hash快,hash的速度和元素个数几乎没有关系,元素数目增加几倍速度还是差不多一样,而switch的速度就按照元素个数增加线性下降,
      

  7.   

    这个效率看你怎么用了。case是在情况有限少的情况下来使用的。hash是数据量相对较大的情况下来使用的,能够快速的根据key定位到value。这两个根本不用再同一种情况,问Dictionary和hash还有点靠谱~~~
      

  8.   

    hash好比一个无线路由器,可以接N个设备包括手机,switch好比一个有线路由器只有固定的四个口。