C#中集合的使用
来源:互联网 发布:淘宝天猫内部优惠券平台 编辑:程序博客网 时间:2024/05/29 07:52
C#中的集合接口:
IEnumerable
IEnumerable<T>
ICollection
ICollection<T>
IDictionary
IDictionary<T>
IList
IList<T>
集合接口的关系
interface IEnumerable<outT> : IEnumerable
interface ICollection : IEnumerable
interface ICollection<T> : IEnumerable<T>, IEnumerable
interface IDictionary : ICollection, IEnumerable
interface IDictionary<TKey, TValue> : ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable
interface IList : ICollection, IEnumerable
interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
泛型被引用进来后,之前的集合类就可以使用泛型类来替换,我们来看看对应的替换关系
ArrayList集合类---->List<T>
Hashtable集合类--->Dictionary<TKey,TValue>
Queue--->Queue<T>
Stack--->Stack<T>
泛型类引进来的好处是它是类型安全的,泛型集合类分两类,一类是键值对集合,另一类是不通过Key操作的集合键值对集合
Dictionary<TKey,TValue>
优点:查找插入速度快
缺点:数据无序,如果要按指定顺序来遍历,则缺点明显
SortedDictionary<TKey,TValue>按照Key进行了排序的集合,查找遍历方便
SortedList<TKey,TValue>数据实际存储在数组中,所以添加或删除元素时,要移动的元素可能很多,但是查找较快,所以对于不需要要过来的添加或删除,而且按一定的顺序遍历的集合,可以使用SortedList.
非键值对集合类
List<T>内部实际是一个数组,默认长度为4,当元素超过4个后,会以2倍的长度进行扩展,并建立新数组,把之前的数组元素拷贝到新数组中,所以如果知道长度,最好提前定义长度,以免频繁的创建拷贝数组,可以使用下标访问
LinkedList<T>内部维护的是一个双向链表结构,所以对于添加或删除元素操作比较方便,如果操作数据频繁,可以使用这个集合类
Hashset<T>有数据唯一性特征的无序集合类,不支持下标访问,使用foreach进行遍历
Sortedset<T>按数据类型进行排序的数据唯一的集合类
Stack<T>栈集合,后进先出,不支持下标访问
Queue<T>队列集合,先进先出,不支持下标访问
- C#中集合的使用
- C#中集合的排序
- C#中集合和对象初始化器的使用
- C#中集合ArrayList与Hashtable的使用
- Oracle中集合的使用
- python中集合的使用
- C#中集合与数组的区别
- C#中集合类
- mybatis foreach中集合的使用
- Java中集合中toArray的使用
- OC中集合的基本使用
- python中集合和字典的使用
- java中集合的使用总结
- 在c#中集合类使用static的好与不好!
- c#中集合ArrayList用法
- C#中集合里面放集合的细节问题
- 详细讲解Java中集合类的使用
- 如何使用Java中集合类的详细讲解
- [NOIP1999]导弹拦截NlogN做法
- URLDecoder用法
- 左右滑动冲突
- 最短路(djstra过)
- APP服务端微信支付(PHP服务端)
- C#中集合的使用
- mysql的安装(mysql-5.7.19-winx64)
- Notepad++或Eclipse删除注释正则表达式
- 2017/09/19第一天使用csdn
- 正则表达式基础
- leetcode 680. Valid Palindrome II
- hdu 6206 Apple 计算几何
- 欢迎使用CSDN-markdown编辑器
- iOS 读取本地JSON文件