C#集合的基本概念

概述

1、什么集合?

首先,数组是一组用来存储类型一样的连串数据,如果元素个数是动态的,数组就无法满足使用要求。这个时候就会用到集合。所以集合就是用来存储长度不固定的一连串数据,并且具有一定的逻辑性和数据存储结构。

2、常见的集合有哪些?

队列、栈、链表、字典和集。前面介绍的List<T>就是泛型集合,且它与数组功能相当,长度可变。

3、集合接口的和类型

绝大多数的集合在System.Collections和System.Collections.Generic命名空间中都能够找到。一些特殊的集合则需要在System.Collections.Specialized命名空间内。线程安全的集合类位于System.Collections.Concurrent命名空间内。

一般而言,集合大多都继承了一些接口以便实现共有的方法。常见的接口如下:
(1)IEnumerable<T>
此接口通常可用来实现轮询功能。例如将foreach语句实现在集合上,就需要继承此接口。这个接口定义了方法GetEnumerator(),它返回实现IEnumratator接口的枚举。

(2)ICollection<T>

使用这个接口可以获得集合中的元素个数(Count属性),把集合复制到数组中(CoptTo()方法)还可以实现Add、Clear、Remove等常规方法
在这里插入图片描述

(3)IList<T>

此接口实现通过制定位置访问元素的方法,这个接口定义了一个索引器,可在集合制定位置插入、删除某些项(Insert()和RemoveAt()方法)。IList<T>接口派生自ICollections<T>接口。
在这里插入图片描述
(4)ISet<T>

ISet<T>接口由集实现,集允许合并不同的集,检查两个集是否重叠。ISet<T>接口派生自ICollection接口。

在这里插入图片描述
(5)IDictionary<Tkey,Tvalue>

此接口由包含键和值得泛型集合类实现。使用这个接口可以访问所有的键和值,使用键类型的索引器可以访问某些项,还可以添加或删除某些项
在这里插入图片描述
(6)ILookup<Tkey,Tvalue>

此接口类似于IDictionary<Tkey,Tvalue>接口,实现该接口的集合有的建和值,且可以通过一个键包含多个值。
在这里插入图片描述
(7)IComparer<T>

此接口由比较器实现,通过Compare()方法给集合中的元素排序。
在这里插入图片描述
(8)IEqualityComparer<T>

此接口由一个比较器实现,该比较器可用于字典中的键。使用此接口,可以对对象进行相等性比较。
在这里插入图片描述
(9)IProducerConsumerCollection<T>

此集合是.NET新增加的,它支持线程安全的集合类。

发布了50 篇原创文章 · 获赞 0 · 访问量 864

猜你喜欢

转载自blog.csdn.net/weixin_40786497/article/details/104144873