【C# 集合】

C# 集合

1.什么是集合:
分散的人或事物聚焦到一起,使聚焦,紧急集合
2.好处:
将类似的数据在作为集合而存储和操作时通常可以得到更高效地处理

集合接口家族(注:→ 标识着继承了接口)

![在这里插入图片描述](https://img-blog.csdnimg.cn/935ae3552e7f498a95803b23565cd87e.png在这里插入图片描述

  1. IEnumerable:它定义了一个用于遍历集合的枚举器(enumerator),是集合类的基石接口,并提供了一个GetEnumerator()方法用户返回一个枚举器,通过foreach循环,对集合每项访问
  2. IEnumerable:实际开发过程过,通过泛型定义接口,实现类型安全的迭代器,来约束类型,避免装箱和拆箱,消耗性能
  3. ICollection:继承了IEnumerable接口,使用这个接口可以获取集合的元素个数[Count]、复制[CopyTo]、添加[Add]、删除[Remove]、清除[Clear]
  4. IList:IList继承了IConllection,可按照索引单独访问的对象的集合,方法:父类有的方法 + IndexOf,Insert
  5. ISet:提供了具有唯一元素、无须的和特定操作的集合
  6. IDictionary:是键/值对的集合,key是唯一性的

集合为什么要设计这么多接口,依据了什么原则:
集合按照了接口隔离原则:指客户端程序不应该依赖于它不需要的接口
接口隔离原则的核心思想:是把大的接口拆分成小的接口,让接口尽可能的精简,同时,确保接口之间的关系尽量松散,所以不言而喻,但接口足够精简,那么需要的接口继承即可,从而降低耦合性

派生实现关系图

在这里插入图片描述
可以分为主要的三种类型

一、线型结构(不使用泛型时,对象为object)

  1. List:特征是线性方式仓储,集合可以存放重复对象,可以索引访问,性能:读取快,删慢
  2. LinkedList:特征是链表数据结构,元素不连续分配,每个元素都有记录前后节点,不能索引访问,性能:增删快,读取慢
  3. Queue:特征是队列,先进先出原则,无法通过下标查找元素,不能在指定位置插入元素,且不带排序功能
  4. Stack:特征是栈,先进后出原则

二、Set集合
Set是最简单的一种集合,唯一性 无序的

  1. HashSet:元素间没关系,动态增加容量 去重
  2. SortedSet:去重 而且排序

三、key\value集合
是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象

  1. Dictionary:key - value,增删查改 都很快;有序的,通过键和索引来访问
  2. SortedList:通过键和索引来访问
  3. SortedDictionary:通过键和索引来访问
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值