对IEnumerable<T>,IDictionary<Tkey,TValue>,ICollection<T>,IList<T>的总结
2012-03-26 10:45
519 查看
1、IEnumerable<T>接口和IEnumerable接口
实现了IEnumerable接口的集合表明该集合能够提供一个enumerator(枚举器)对象,支持当前的遍历集合。IEnumerable接口只有一个成员GetEnumerator()方法。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/c2ce972dc980c4e61833b6d663fbf9bc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/8795b7c671de18e1de947091d154f795.png)
IEnumerator接口实现了IEnumerator接口的集合实现了从一个元素到另一个元素向前移动的方法,同时也可以随时返回初始处。
IEnumerator接口是只读的。
包括以下三个成员
MoveNext()方法调整遍历指针移向集合的下一个元素。注意,遍历指针的初始位置是集合中第一个元素的前面。要指向第一个元素,必须先调用一次MoveNext()方法。该方法返回一个布尔值,如果成功遍历到下一个元素,则返回true;如果指针移出末尾,则返回false。
Reset()方法用于设置遍历指针指向初始位置,即集合中第一个元素的前面。
Current属性返回集合中当前对象的引用。
2、ICollection<T>接口和ICollection接口
该接口是IEnumerable接口的子接口,定义了集合的大小、IEnumerator接口和同步方法。在IEnumerable接口的基础上增加了以下功能。
Count;该属性返回集合中元素的数目。
CopyTo(Array array, int index);该方法用于实现从集合中拷贝元素到一个一维数组中。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/11ea9bff9f6bafa120b2688eafd41c40.png)
3、IList接口和IList<T>接口
ILIst接口包括以下方法和属性
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/a7a17c390f528593b82c850f64c58fb3.png)
Add()和Insert()方法用于向集合中添加条目,使用索引来指定项目要插入的位置,其中首元素的索引为0;Add()将新条目添加到尾部。
Remove()和RemoveAt()用于从列表中删除条目。Clear()用于删除所有条目。
IndexOf和Contains()用于搜索该列表。
this属性用于获取或设置索引指定的值。C#中可以使用[]运算符进行访问
IList<T>接口
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/db786df4348c4c9b537873d1cf07de88.png)
ArrayList类
ArrayList类实际上是C#中的”动态数组”。数组在new创建后,其大小(Length)是不能改变的,而ArrayList中的数组元素的个数(Count)是可以改变的,元素可以加入及移出。
4、IDictionary<Tkey,Tvalue>接口IDictionary
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/80d546910a6b8e566ed6db3c2d3879a1.png)
IDictionary接口提供了一组”关键字/值”的集合,Hashtable是IDictonary的一个重要实现。
IDictionary接口是一个包含一组”关键字/值”对的数据结构,每个值都由相应的关键字来定义。关键字和值可以是任何数据类型,关键字必须唯一且非空。
Add()方法添加一个指定的关键字和值的条目到IDictionary接口。
this属性检索指定关键字所对应的值。
Keys和Values属性分别返回包含所有关键字和值的集合。
Remove()用于删除指定关键字对应的条目。Clear()用于删除所有条目。
GetEnumator()返回一个IDictionaryEnumerator,可用于遍历IDictionary接口。
IDictionaryEnumerator接口
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/4bc4d42beb92be5d4b12ca9c1f16444e.png)
IDictionaryEnumerator接口基于IEnumerator接口,可以使用Entry属性检索当前条目的关键字和值,或者使用Key和Value属性分别检索。Entry属性返回一个DictionaryEntry对象。
DictionaryEntry是一个值类型,包含Key和Value两个字段,每个字段都是一个对象引用。s
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/9a0c9e8e44ed30839be9a7b7a689aee9.png)
Hashtable类
Hashtable(哈希表)表示一个关键字和值相关联的集合,它的组织方式能够高效地检索其中的值。
HashMap和Hashtable及HashSet的区别
http://www.blogjava.net/fisher/archive/2006/12/13/87398.html
实现了IEnumerable接口的集合表明该集合能够提供一个enumerator(枚举器)对象,支持当前的遍历集合。IEnumerable接口只有一个成员GetEnumerator()方法。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/c2ce972dc980c4e61833b6d663fbf9bc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/8795b7c671de18e1de947091d154f795.png)
IEnumerator接口实现了IEnumerator接口的集合实现了从一个元素到另一个元素向前移动的方法,同时也可以随时返回初始处。
IEnumerator接口是只读的。
包括以下三个成员
MoveNext()方法调整遍历指针移向集合的下一个元素。注意,遍历指针的初始位置是集合中第一个元素的前面。要指向第一个元素,必须先调用一次MoveNext()方法。该方法返回一个布尔值,如果成功遍历到下一个元素,则返回true;如果指针移出末尾,则返回false。
Reset()方法用于设置遍历指针指向初始位置,即集合中第一个元素的前面。
Current属性返回集合中当前对象的引用。
2、ICollection<T>接口和ICollection接口
该接口是IEnumerable接口的子接口,定义了集合的大小、IEnumerator接口和同步方法。在IEnumerable接口的基础上增加了以下功能。
Count;该属性返回集合中元素的数目。
CopyTo(Array array, int index);该方法用于实现从集合中拷贝元素到一个一维数组中。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/11ea9bff9f6bafa120b2688eafd41c40.png)
3、IList接口和IList<T>接口
ILIst接口包括以下方法和属性
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/a7a17c390f528593b82c850f64c58fb3.png)
Add()和Insert()方法用于向集合中添加条目,使用索引来指定项目要插入的位置,其中首元素的索引为0;Add()将新条目添加到尾部。
Remove()和RemoveAt()用于从列表中删除条目。Clear()用于删除所有条目。
IndexOf和Contains()用于搜索该列表。
this属性用于获取或设置索引指定的值。C#中可以使用[]运算符进行访问
IList<T>接口
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/db786df4348c4c9b537873d1cf07de88.png)
ArrayList类
ArrayList类实际上是C#中的”动态数组”。数组在new创建后,其大小(Length)是不能改变的,而ArrayList中的数组元素的个数(Count)是可以改变的,元素可以加入及移出。
4、IDictionary<Tkey,Tvalue>接口IDictionary
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/80d546910a6b8e566ed6db3c2d3879a1.png)
IDictionary接口提供了一组”关键字/值”的集合,Hashtable是IDictonary的一个重要实现。
IDictionary接口是一个包含一组”关键字/值”对的数据结构,每个值都由相应的关键字来定义。关键字和值可以是任何数据类型,关键字必须唯一且非空。
Add()方法添加一个指定的关键字和值的条目到IDictionary接口。
this属性检索指定关键字所对应的值。
Keys和Values属性分别返回包含所有关键字和值的集合。
Remove()用于删除指定关键字对应的条目。Clear()用于删除所有条目。
GetEnumator()返回一个IDictionaryEnumerator,可用于遍历IDictionary接口。
IDictionaryEnumerator接口
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/4bc4d42beb92be5d4b12ca9c1f16444e.png)
IDictionaryEnumerator接口基于IEnumerator接口,可以使用Entry属性检索当前条目的关键字和值,或者使用Key和Value属性分别检索。Entry属性返回一个DictionaryEntry对象。
DictionaryEntry是一个值类型,包含Key和Value两个字段,每个字段都是一个对象引用。s
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/9a0c9e8e44ed30839be9a7b7a689aee9.png)
Hashtable类
Hashtable(哈希表)表示一个关键字和值相关联的集合,它的组织方式能够高效地检索其中的值。
HashMap和Hashtable及HashSet的区别
http://www.blogjava.net/fisher/archive/2006/12/13/87398.html
相关文章推荐
- c#学习笔记对IEnumerable<T>,IDictionary<Tkey,TValue>,ICollection<T>,IList<T>的总结
- [C#]泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,List<T>,Dictionary<Tkey,Tvalue>,SortedList<Tkey,Tvalue>,Queue<T>,Stack<T>等
- .Net集合类的研究-有序集合(一)-SortedList、SortedList<TKey,TValue>
- SortedList<TKey,TValue> 和 SortedDictionary<TKey,TValue>
- 在hibernate中 以Collection<Entity> 替换Map<Key, List<Value>结构
- IDictionary<TKey,TValue>数据字典使用讲解
- c# 图解泛型List<T>, HashTable和Dictionary<TKey,TValue>
- 有序列表---SortedList<TKey,TValue>
- 泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,List<T>,Dictionary<Tkey,Tvalue>,SortedList<Tkey,Tvalue>,Queu
- KeyedCollection<TKey, TItem>与IDictionary<TKey, TValue>的区别
- .net学习笔记----有序集合SortedList、SortedList<TKey,TValue>、SortedDictionary<TKey,TValue>
- C# 谈Dictionary<TKey,TValue>,SortedDictionary<TKey,TValue>排序
- 返回集合使用IEnumerable<>还是IList<>
- 关于List<E>.addAll(Collection<? extends E> collection)传入参数null
- System.Collection.IList 转换成为 System.Collection.Generic.IList<T>
- C#学习常用类(3000)---ConcurrentDictionary<TKey,TValue>类
- 黑马程序员—— LikedList<E>泛型类总结
- list<T>与ObservableCollection<T>
- List<Map>集合根据Map里的两个key值对List集合重新排序
- MVC中DropDownListFor使用及报错既有键值为“SightId”的值为String,应该为IEnumerable<selectlist>