zoukankan      html  css  js  c++  java
  • .net中集合、容器(Collection)的这些事

    一般的开发中常用的集合有:

    列表:List

    集合:Set

    字典:Dictionary

    队列:Queue

    栈:Stack

    只要知道了这些名字,在FCL库中可以找到合适的实现,如下列出了各种类,根据需要选择即可。

    命名空间

    引入的.net版本

    说明

    集合实例

    System.Collections 

    1.0

    普通的集合类、接口等

    ArrayList

    BitArray

    HashTable

    Queue

    SortedList

    Stack

    System.Collections.Specialized

    1.0

    特定的强类型集合

    HybridDictionary

    ListDictionary

    NameValueCollection

    OrderedDictionary

    StringCollection

    StringDictionary

    1.0的集合类仅在兼容以前代码时使用,现在一般使用如下的类

    System.Collections.Generic

    2.0

    泛型的集合

    更好的类型安全和性能

    Dictionay<T,V>

    HashSet<T>

    LinkedList<T>

    List<T>

    Queue<T>

    SortedDictionary<T,V>

    SortedSet<T>

    Statck<T>

    3.0

    线程安全容器

     

    SynchronizedCollection<T>

    SynchronizedKeyedCollection<K, T >

    SynchronizedReadOnlyCollection< T >

    System.Collections.ObjectModel

    2.0

    用于属性和方法返回类型

    可重用库设计时使用

    Collection<T>

    KeyedCollection<T,V>

    ObervableCollection<T>

    ReadOnlyCollection<T>

    ReadOnlyObervableCollection<T>

    System.Collections.Concurrent

     

    4.0

    线程安全集合

    处理了线程的并发访问

    非阻塞[如果一个线程试图提取一个不存在的元素,线程立即返回]

    ConcurrentBag<T>

    ConcurrenDictionary<T,V>

    ConcurrenQueue<T>

    ConcurrenStack<T>

    ConcurrenDictionary的枚举GetEnumerator不返回快照,其他返回快照

     

    阻塞集合

    BlockingCollection<(T>

    Wintellect’s Power Collections

    Wintellect提供了类似STL的集合和算法类

    集合类

     

    BigList<T>

    有序T的结合,操作100个以上的数据项效率高

    Bag<T>

    无序T的集合,集合进行了哈希处理,允许重复项

    OrderedBag<T>

    有序T的集合,允许重复项

    Set<T>

    无序T的集合,不允许重复项

    OrderedSet<T>

    有序T的集合,不允许重复项

    Deque<T>

    双端队列

    OrderedDictionary<T,V>

    字典,键进行了排序

    MultiDictionary<T,V>

    字典,每个键有多个值,允许重复键,数据项无序

    Ordered MultiDictionary<T,V>

    字典,每个键有多个值(值也进行了排序),允许重复键,键进行了排序

     

     

    Algorithms

    针对泛型集合的查找、替换、排序、转换、组合等各种算法的实现类

     

    [优先使用集合类自带的算法函数,只有在没有需要的函数时才使用这些通用的算法和STL的道理一样]

  • 相关阅读:
    2013,愿景
    多触式web前端开发之一:对于Touch的处理 [转]
    为什么我们常说很多时候一定要亲身经历了之后才能明白? [转]
    virtualenvwrapper 的安装和使用
    doccano在centos环境下安装,亲测可用
    pip install xxx i 清华镜像
    解决 ModuleNotFoundError: No module named 'pip'
    python3.5以后venv创建/激活/退出虚拟环境
    通过微调Transformers完成命名实体识别任务
    win10系统安装文本标注工具doccano
  • 原文地址:https://www.cnblogs.com/2018/p/2035531.html
Copyright © 2011-2022 走看看