易轩

持续做有意义的事

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  一、设计背景

     .Net Framework自带的类库提供了一些基本的容器类,包括泛型的和非泛型的。其中我们用得最多的可能就是Dictionary<>、List<>(或者Hashtable、ArrayList)了。当我们需要实现的功能比较简单的时候,它们已经够用了,但是更多情况,在使用它们的时候我们还要写一些其实与系统业务没什么关系的代码:涉及多线程编程时需要线程安全地访问它们;有时我们希望容器内的元素按照某种顺序排列;还有些情况下需要把Dictionary<>和List<>结合起来使用,并保证它们的一致性。

  二、SafeHashList介绍

    SafeHashList<TKey,TValue>内置了Dictionary<TKey,TValue>和List<TKey>,Dictionary<TKey,TValue>用于存放键值对,List<Key>用于保存键的顺序,内部维护了两个容器元素的一致;

    支持多线程安全访问;

    支持按3种顺序排序:元素添加顺序(默认)、键的顺序(TKey类型须实现IComparable接口)、值的顺序(TValue类型须实现IComparable接口),自动排序并随时可在不同排序方式间切换;

    支持Exists、Find、FindAll、FindLast、TrueForAll、ForEach等常用谓词匹配方法。

  三、源码

    

SafeHashList

 

posted on 2009-11-18 10:45  易轩  阅读(374)  评论(1编辑  收藏  举报