原文链接: http://blog.csdn.net/shanyongxu/article/details/47005979

集合接口和类型

前面介绍了数组和Array类实现的接口.数组的大小是固定的.如果元素个数是动态的,就应私用集合类.

List<T>是与数组相当的集合类.还有其他类型的集合:队列,栈,链表和字典.

大多数集合类都可在System.Collections和System.Collections.Generic名称空间中找到.泛型集合类位于System.Collections.Generic名称空间中;专用于特定类型的集合类位于System.Collections.Specialized名称空间中.线程安全的集合类位于System.Collections.Concurrent名称空间中.

集合和列表实现的接口如下:

接口

说明

IEnumerable<T>

如果foreach语句用于集合,就需要IEnumerable接口.这个借口定义了方法GetEnumerator(),他返回一个实现了IEnumerator接口的枚举

ICollection<T>

ICollection<T>接口有泛型集合类实现.使用这个借口可以获得集合中的元素个数(Count属性),把集合复制到数组中(CopyTo()方法),还可以从集合中添加和删除元素(Add(),Remove(),Clear())

List<T>

IList<T>接口用于可通过位置访问其中的元素列表,这个接口定义了一个 索引器,可以在集合的指定位置插入或删除 mount些项(Insert()和Remove()方法).IList<T>接口派生自ICollection<T>接口

ISet<T>

ISet<T>接口是.NET4中新增的.实现这个接口的集允许合并不同的集.获得两个集的交集,检查两个集合是否重叠.ISet<T>接口派生自ICollection<T>接口

IDictionary<TKey,TValue>

IDictionary<TKey,TValue>接口由包含键和值的泛型集合类 实现.使用这个接口可以访问所有的键和值,使用键类型的索引器可以访问某些项,还可以添加或删除某些项

ILookup<TKey,TValue>

ILookup<TKey,TValue>接口类似于IDictionary<TKey,TValue>接口,实现该接口的集合有键和值,且可以通过一个键包含多个值

IComparer<T>

接口ICommparer<T>由比较器实现,通过Comparer()方法给集合中的元素排序

IEqualityComparer<T>

接口IEqualityComparer<T>由一个比较器实现,该比较器可用于字典中的键.使用这个接口,可以对对象进行相等性比较.在.NET中,这个接口也由数组和元组实现

IProducerConsumerColllection<T>

IProducerConsumerCollection<T>接口是.NET4中新增的,它支持新的线程安全的集合类

最新文章

  1. OpenCASCADE Job - dimue
  2. Objective-C之KVC、KVO
  3. 斐讯Fir302b救砖教程
  4. JavaScript中的事件
  5. Flask+mongodb 实现简易个人博客
  6. Unity3D之Mecanim动画系统学习笔记(八):Animator Layers(动画分层)
  7. mp4文件格式之fragment mp4
  8. Oracle第二天
  9. 浅谈js代码规范
  10. 【Win 10 应用开发】MIDI 音乐合成——更改乐器音色
  11. Servlet之cookie处理
  12. Linux shell编程— 命令替换
  13. PageHelper分页插件及通用分页js
  14. memory error python报错
  15. Zabbix 配置监控主机
  16. Just oj 2018 C语言程序设计竞赛(高级组)F:Star(结构体排序+最小生成树)
  17. glog学习(二):glog主要接口和类分析
  18. Testlink&#160;Testlink在Windows下的安装
  19. 复习下VLAN的知识
  20. [Java] Servlet工作原理之二:Session与Cookie

热门文章

  1. 推荐一些socket工具,TCP、UDP调试、抓包工具 (转载)
  2. js时间格式化函数(兼容IOS)
  3. 墨刀 vs Axure RP
  4. GitLab备份的创建与恢复
  5. C++Primer,C++标准IO库阅读心得
  6. 高能天气——团队Scrum冲刺阶段-Day 6
  7. app微信支付宝支付后台的插件模式+回调通过spring广播处理后续业务(已亲测可用)
  8. MVVM模式下关闭窗口的实现
  9. ReentrantLock源码了解
  10. 吴恩达-coursera-机器学习-week3