数组
在 VB.Net 中数组有了很大的改变。首先象在简单赋值章节描述的:数组的索引编号总是从零开始;并且数组的元素类型是强类型,即数组中所包含的每一个元素都必须是相同的类型。
Array 对象
在 VB.Net 中使用 Dim iArr(5) As Int32 这种语法表示的数组实际上是声明了一个 Array 对象的实例。 Array 对象是位于 System 命名空间中。这个对象提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。不过虽然 Array 类是支持数组的语言实现的基类。但是,只有系统和编译器能够从 Array 类显式派生。用户应当使用语言提供的数组构造。 Array 对象提供了一些重要的属性和方法,来便于我们操作数组。
** Array ** ** 数组操作举例 **
Dim iArr(5) As Int32 'iArr.Length=6
Dim bArr(5, 5) As Boolean 'bArr.Rank=2,bArr.Length=36
Array.Clear(iArr, 0, iArr.Length - 1)
For i As Int32 = iArr.GetUpperBound(0) To 0 Step -1 'iArr.GetUpperBound(0)=5
' 数组的元素为
iArr.SetValue(i, i)
Next
Array.Sort(iArr) ' 数组元素经过排序后为 0 , 1 , 2 , 3 , 4 , 5
For i As Int32 = 0 To iArr.GetUpperBound(0)
' 输出数组元素
Next
ArrayList 对象
Ayyar 的容量是固定的, VB.Net 提供的 ReDim 语句实际上是利用了 ArrayList 对象的能力。 ArrayList 是 Array 的复杂版本。 ArrayList 其实是把 Array 当作集合处理,当然就可以将容量根据需要进行自动扩展了。 ArrayList 既然是以集合的方式处理,所以它当然位于 System. Collections 命名空间中了。
不过 Array 相对于 ArrayList 来讲也有其优势: Array 可以有多个纬度,但 ArrayList 只可以有一个纬度。在 Array 的元素中值类型不需要进行装箱和卸箱的操作,所以在值类型方面, Array 比 ArrayList 具有高的多的效率。(数据类型将在后期的类型章节描述。)
** 使用 ArrayList ** ** 对象更改 Array ** ** 对象容量大小举例 **
Dim iArr(5) As Int32
For i As Int32 = 0 To iArr.GetUpperBound(0)
iArr.SetValue(i, i) '0,1,2,3,4,5
Next
Dim iArrList As New System.Collections.ArrayList(iArr) 'iArrList.Count=6
For i As Int32 = 6 To 10
iArrList.Add(i)
Next 'iArrList.Count=11
iArrList.Insert(5, 99) 'iArrList.Count=12
iArrList.Capacity = 100 'iArrList.Count=12
iArrList.TrimToSize() 'iArrList.Count=12
iArr = iArrList.ToArray( GetType (Int32))
For i As Int32 = 0 To iArr.GetUpperBound(0) 'iArr.GetUpperBound(0)=11
' 输出: 0,1,2,3,4,99,5,6,7,8,9,10
Next
数组声明指定需要一个数据类型(可将数组声明为任何基本数据类型、结构或者对象类),数组的所有元素必须都是该类型数据。但是如果数据类型是 Object ,则单个数组元素可以包含各种类型的数据(如对象、字符串、数字等等)。