C#_集合


作者:云都小生


集合概述



在数学上,我们都知道有集合这种概念,数组就是集合的其中一种。但是数组长度是固定的,数据类型也是固定的,这很繁琐。

                   
非泛型集合接口泛型集合接口说明
ICollectionICollection<T>定义所有集合的大小(Count),枚举器(foreach)和同步(copyto)方法,继承自IEnumerable
IListIList<T>表示可按照索引单独访问的一组对象(像数组一样)
IDictionaryIDictionary<T>表示键/值对的集合
IComparerIComparer<T>定义类型为比较两个对象而实现的方法
IEqualityComparerIEqualityComparer<T>定义方法以支持对象的相等比较
IEnumerableIEnumerable<T>公开枚举器。实现了该接口意味着允许foreach语句循环访问集合中的元素
IEnumeratorIEnumerator<T>支持在泛型集合上进行简单迭代
ISetIEnumerator<T>支持在泛型集合上进行简单迭代

这些接口都提供了一些集合的标准处理方法,在开发中我们经常用到的,都是ArrayList、HashTable、Queue和Stack。


ArrayList



ArrayList很像数组,但是并不是数组,它扩展了数组。ArrayList可动态扩展长度,可以存放各种不同的数据类型(但是一般都不会这么做)。

获取ArrayList集合的元素数时使用Count属性。

属性说明
Count获取 ArrayList 中实际包含的元素数。
IsReadOnly获取一个值,该值指示 ArrayList 是否为只读。
Item获取或设置指定索引处的元素。
RemoveAt
方法说明
Add将对象添加到 ArrayList 的结尾处。
BinarySearch查找特定元素
Clear从 ArrayList 中移除所有元素。
Clone创建ArrayList的副本。
IndexOf返回 ArrayList 中某个值的第一个匹配项的从零开始的索引。
Insert将元素插入 ArrayList 的指定索引处。 可在任意位置插入。
LastIndexOf返回 ArrayList 或它的一部分中某个值的最后一个匹配项的从零开始的索引。
Remove从 ArrayList 中移除特定对象的第一个匹配项。
移除 ArrayList 的指定索引处的元素。
Reverse将ArrayList中元素的顺序反转。
Sort对ArrayList的元素进行排序。
ToArray将 ArrayList 的元素复制到新数组中。
Contains确定某元素是否在 ArrayList 中


HashTable



HashTable是键/值对,看下面···

Hashtable ht = new Hashtable();
ht.Add(1,1);
ht.Add("我爱你","是吗?");

HashTabel和ArrayList都实现了ICollection和IEnumerable接口,所以方法基本上都差不多。


Queue



Queue是队列数据结构,元素先进先出。Queue类实现了ICollection和IEnumerable接口。








方法说明
Clear从Queue中移除所有对象,清空队列
Contains确定某元素是否在Queue中
Enqueue将对象添加到Queue的结尾处入列
Dequeue移除并返回位于Queue开始处的对象出列
Peek返回位于Queue开始出的对象,但不将其移除,与出列不同,出列是会移除的


Stack



Stack称为栈,栈和队列非常相似,熟悉栈机制的,都知道栈是后进先出,先进后出。








方法说明
Clear从Stack中移除所有对象,清空栈
Contains确定某元素是否在Stack中
Push将对象添加到Stack的结尾处入栈
Pop移除并返回位于Stack开始处的对象出栈
Peek返回位于Stack栈顶,但不将其移除,与出列不同,出列是会移除的

2018/1/20 0:12:01 @Athor:云都小生

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值