常常需要一个合适的集合操作,用于查询某个关键字是否在集合中,数组,collection都不能直接完成。
System.Collection名称空间
在.NET系统类库中提供的新集合功能来自System.Collection名称空间中。这个名称空间不仅支持过去的一个简单集合概念,也支持由Windows Scripting Host Library提供的Dictionary样式集和。其他类型的集合也可用。以下是常用的集合列表:
集合 | 描述 |
Arraylist | 执行随着元素的增加而动态增长的一维数组 |
BitArray | 执行有Boolean值的一维数组,这些值作为单子节在内部存储,提供了一种非常紧凑的格式管理一系列的Boolean值 |
Dictionary | 执行一个键-值数据对集合可以在Dictionary对象中存储和检索 |
Hashtable | 执行一个键值数据对集合,这个集合根据键的散列值进行组织。加快了存储速度,提高了存储效率,还可以根据健值检索数据。 |
ObjectList | 执行随机对象集合。因为所有的数据类型都可以用Object表示,这个集合可以虚拟保存任何数据。 |
Queue | 执行一个FIFD(先进先出)队列 |
SortedList | 执行一系列已分类的键值对 |
Stack | 执行一个LIFO(后进先出)的堆栈式结构。 |
StringCollection | 执行一个String值的集合 |
与一个Collection数据类型相比,可用的各种类看起来更具优势。 但是现在的选项和类都比过去多了,如Hashtabel和Objectlist,他们提供与我们熟悉的Collection对象相当的功能。
例如,对于不需关心元素顺序的Collection式样的功能来说,可以使用Hashtabel类:
Imports System.Collection
Public Sub DoSomething()
Dim ht As New Hashtabel()
Dim entry As DictionaryEntry
ht.Add(1,"item 1")
ht.Add(2,"item 2")
For Each entry In ht
System.Diagnostics.Debug.WriteLine(entry.Value)
Next
End Sub
与所有的键值集合一样,集合的元素由DictionaryEntry对象表示,以访问某个元素的键和值。
虽然Hashtabel与VB6 Collection对象稍有不同,但代码十分相似,总体上与用于处理System.Collection名称空间中的其他集合类的所编写的代码集合类一致。
其中,dictionary在1。1库中没有,只有一个抽象基类dictionarybase,所以用hashtable