所有集合类型整理(注:由于BitVector32未实现枚举接口,不计入)
2009-10-09 10:08
417 查看
序号 名称 虚类 枚举 集合 列表 字典 查询 位置 1 Array * * * * System 2 CollectionBase * * * * Collections 3 KeyedByTypeCollection<TItem> * *T *T *T Generic 4 KeyedCollection<K,TItem> * *T *T *T ObjectModel 5 DictionaryBase * * * * Collections 6 ReadOnlyCollectionBase * * * Collections 7 NameObjectCollectionBase * * * Specialized 8 ArrayList * * * Collections 9 StringCollection * * * Specialized 10 List<T> *T *T *T Generic 11 Collection<T> *T *T *T ObjectModel 12 ObservableCollection<T> *T *T *T ObjectModel 13 ReadOnlyCollection<T> *T *T *T ObjectModel 14 SynchronizedCollection<T> *T *T *T Generic 15 SynchronizedKeyedCollection<K, T> *T *T *T Generic 16 SynchronizedReadOnlyCollection<T> *T *T *T Generic 17 Hashtable * * * Collections 18 SortedList * * * Collections 19 ListDictionary * * * Specialized 20 OrderedDictionary * * * Specialized 21 HybridDictionary * * * Specialized 22 Dictionary<K,V> *T *T *T Generic 23 SortedList<K,V> *T *T *T Generic 24 SortedDictionary<K,V> *T *T *T Generic 25 Queue * * Collections 26 Queue<T> *T * Generic 27 Stack * * Collections 28 Stack<T> *T * Generic 29 LinkedList<T> *T *T Generic 30 BitArray * * Collections 31 NameValueCollection * * Specialized 32 NameObjectCollectionBase.KeysCollection * * Specialized 33 Dictionary<K,V>.KeyCollection *T *T Generic 34 Dictionary<K,V>.ValueCollection *T *T Generic 35 SortedDictionary<K,V>.KeyCollection *T *T Generic 36 SortedDictionary<K,V>.ValueCollection *T *T Generic 37 HashSet<T> *T T Generic 38 Lookup<K,TElement> *T T Linq 39 StringDictionary * Specialized
=================
先对上贴作个说明:
=================
*代表仅非泛型接口的实现
T代表非泛型和泛型接口同时实现
t代表仅泛型接口的时实现
[x]代表abstract类型
========
关系图谱
========
IList --
+-->ICollection -->Ienumerable
IDictionary -- //
|
Ilist <> -- |
+-->Icollection <>-->Ienumerable <>
Idictionary <>-- ILookup <>
========
进化过程
========
枚举-->集合-->(列表/字典)
*有兴趣的可以看一下《C#核心技术》这本书书,算是介绍的比较详细了。
发现网上关于集合问的比较多,但是没有答清楚的一个问题:
是List <T>与Collection <T>的区别是什么?
Collection <T>实现了List <T>的功能,
区别在于Collection可以当作基类,重载以下四个方法和一个属性,
以便对元素进行控制,而List只能进行枚举。
System.Collections.ObjectModel.Collection <T>.ClearItems()
System.Collections.ObjectModel.Collection <T>.InsertItem(int, T)
System.Collections.ObjectModel.Collection <T>.RemoveItem(int)
System.Collections.ObjectModel.Collection <T>.SetItem(int, T)
System.Collections.ObjectModel.Collection <T>.Items
相关文章推荐
- java集合类型接口和实现类个人总结
- 如何使用反射确定一个属性是否实现了IList接口,如何确定元素量为空的集合的元素类型。
- TreeSet集合存放自定义类型的对象,可以使用比较器,实现Comparable接口自己设置排序方式
- Java动态获取某个接口下所有的实现类对象集合
- C# 通过IEnumberable接口和IEnumerator接口实现自定义集合类型foreach功能
- 获取实现某个接口的所有实现类集合
- Java动态获取某个接口下所有的实现类对象集合
- 使用集合接口的时候应该使用通用类型代替具体的实现类型
- 实现对象集合枚举接口
- java集合类型接口和实现类个人总结
- 集合的概念、类型、接口以及接口的实现类的方法描述
- java集合类型接口和实现类个人总结
- 4-4 求自定类型元素的平均 (10分) 本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。 函数接口定义: ElementType Aver
- JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
- 利用 IEnumerable接口 实现自定义类型的集合的foreach遍历
- Java动态获取某个接口下所有的实现类对象集合
- 【整理】.Net Framework3.5之隐式类型的本地变量和数组、对象初始值设定项、集合初始值设定项、自动实现的属性和匿名类型
- 设计模式实践-反射到所有接口实现类实践工厂方法,页面中有大量计算数据时设计实践
- DataGridView使用非泛型或者未实现IBindingList接口泛型集合的列排序问题
- NHibernate自定义集合类型(中):通用实现方式