List集合在对大量数据时,前2秒add是飞快,地后面就很慢了
里面主要有加Contains进行判断。
100W条数据就很慢了!有什么办法可以解决这个。
我试过每100清空下缓存也不行

解决方案 »

  1.   

    100w条数据你要这么多数据干啥?另外,List数据不适合作为那种查找的容器,有序的还能快些
    如果都是不同的数据,考虑用Dictionary
      

  2.   

    查询速度快的,还是用字典吧  Dictionary<key,value>
      

  3.   

    进行List.Add操作,如果实际元素个数小于容量,操作复杂度是 O(1) ,但如果元素个数等于容量,那么需要对容量进行扩充,整个操作会变成O(n) n是当前元素个数。而List.Capacity变化是:0, 4, 8, 16, 32, 64...
    所以如果你确定List数据个数的话,在创建List时构造函数可以指定一个容量(比如100w),这样可以减少后续不停的分配新空间。不过设置容量也是O(n) 操作,n是新容量值。
      

  4.   

    搜索要那么数据放在内存是不明智的第二 可以new的时候指定
    List<T> list = new List<T>(100w); 先把空间分配好
      

  5.   

    Dictionary相当于线性表,查找很快
      

  6.   

    数据太多的就不适合用list 了。你可以先把数据保存到XML中,在去读取这样可能会快点!
      

  7.   


    这不更费劲吗?建议提前分配好指定大小或者存储的时候使用链表结构 不要使用list
      

  8.   

    同意Dictionary
    泛型键值对,安全类型,少了装拆箱,速度会快不少。