本帖最后由 ADSLAN 于 2011-08-05 16:39:12 编辑

解决方案 »

  1.   

    就为这个功能用clientdataset代替stringlist是有点不可思议的。
    效率快慢本质不在于使用stringlist还是clientdataset,而是时间搜索的算法。
    stringlist有一个sorted属性,设置为true,就可使indexof方法采用二分查找法来搜索数据,是最快的。
    你用clientdataset,无非是加个索引,来实现快速查找。原理是一样的,不然clientdataset这么复杂的类肯定慢得多。杀鸡用牛刀?
      

  2.   

    clientdataset有locate和lookup方法可以用来查询,但内存表不能太大,顶多几千行。
      

  3.   

    要么就把记录存入一个数据库,用SQL语句查。
      

  4.   

    原来一直用stringlist 只是想换种方式 提升下速度
    不想打乱原有数据的顺序 stringlist排序以后不符合我的要求了或者有别的更高效算法 请高手们提供一下吧
      

  5.   

    clientdataset用locate和lookup方法可以用来查询,对于数据量大是很慢的,既然你都知道了添加时是很快的,为什么不在clientdataset上建立一个唯一索引?然后在添加的时候,用try ..except end 把主键冲突的异常忽略掉.你最后在clientdataset上的数据就是不存在重复的记录啦.