C#集合(Collection)
C# 中的集合类(Collection)是专门用于数据存储和检索的类,类中提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类都实现了相同的接口。
集合类的用途多种多样,例如可以动态的为元素分配内存、根据索引访问列表项等等,这些类创建 Object 类的对象集合,Object 类是 C# 中所有数据类型的基类。
集合类的用途多种多样,例如可以动态的为元素分配内存、根据索引访问列表项等等,这些类创建 Object 类的对象集合,Object 类是 C# 中所有数据类型的基类。
C# 中的集合类型
在 System.Collections.Generic,System.Collections.Concurrent 和 System.Collections 命名空间下提供了许多集合类型,每种集合类型都有特定的用途,下面以 System.Collection 命名空间为例,该命名空间下提供的集合类型如下表所示:类 | 描述和用法 |
---|---|
动态数组(ArrayList) |
动态数组表示可被单独索引的对象的有序集合。 动态数组基本上与数组相似,唯一不同的是动态数组可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整自身的大小。 另外,动态数组也允许在列表中进行动态内存分配、增加、搜索、排序等等。 |
哈希表(Hashtable) |
哈希表可以使用键来访问集合中的元素。 哈希表中的每一项都由一个键/值对组成,键用于访问集合中的指定项。 |
排序列表(SortedList) |
排序列表是数组和哈希表的组合,可以使用键或索引来访问列表中的各项。 排序列表中包含一个可使用键或索引访问各项的列表,如果您使用索引访问各项,则它是一个动态数组,如果您使用键访问各项,则它就是一个哈希表。 另外,排序列表中的各项总是按键值进行排序的。 |
堆栈(Stack) |
堆栈代表了一个后进先出的对象集合。 当您需要对各项进行后进先出的访问时,则可以使用堆栈。为堆栈中添加一项称为推入项目,从堆栈中移除一项称为弹出项目。 |
队列(Queue) |
队列代表了一个先进先出的对象集合。 当您需要对各项进行先进先出的访问时,则可以使用队列。为队列中添加项目称为入队,为队列中移除项目称为出队。 |
点阵列(BitArray) |
点阵列代表了一个使用 1 和 0 来表示的二进制数组。 当您需要存储比特位,但是事先不知道具体位数时,则可以使用点阵列。可以使用整型索引从点阵列集合中访问各项,索引从零开始。 |