數(shù)組
在VB.Net中數(shù)組有了很大的改變。首先象在簡單賦值章節(jié)描述的:數(shù)組的索引編號總是從零開始;并且數(shù)組的元素類型是強類型,即數(shù)組中所包含的每一個元素都必須是相同的類型。
Array對象 在VB.Net中使用Dim iArr(5) As Int32這種語法表示的數(shù)組實際上是聲明了一個Array對象的實例。Array對象是位于System命名空間中。這個對象提供創(chuàng)建、操作、搜索和排序數(shù)組的方法,因而在公共語言運行庫中用作所有數(shù)組的基類。不過雖然Array 類是支持數(shù)組的語言實現(xiàn)的基類。但是,只有系統(tǒng)和編譯器能夠從 Array 類顯式派生。用戶應(yīng)當使用語言提供的數(shù)組構(gòu)造。Array對象提供了一些重要的屬性和方法,來便于我們操作數(shù)組。
Array數(shù)組操作舉例 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
'數(shù)組的元素為
iArr.SetValue(i, i)
Next
Array.Sort(iArr) '數(shù)組元素經(jīng)過排序后為0,1,2,3,4,5
For i As Int32 = 0 To iArr.GetUpperBound(0)
'輸出數(shù)組元素
Next
ArrayList對象 Ayyar的容量是固定的,VB.Net提供的ReDim語句實際上是利用了ArrayList對象的能力。ArrayList是Array的復(fù)雜版本。ArrayList其實是把Array當作集合處理,當然就可以將容量根據(jù)需要進行自動擴展了。ArrayList既然是以集合的方式處理,所以它當然位于System. Collections 命名空間中了。
不過Array相對于ArrayList來講也有其優(yōu)勢:Array可以有多個緯度,但ArrayList只可以有一個緯度。在Array的元素中值類型不需要進行裝箱和卸箱的操作,所以在值類型方面,Array比ArrayList具有高的多的效率。(數(shù)據(jù)類型將在后期的類型章節(jié)描述。)
使用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
數(shù)組聲明指定需要一個數(shù)據(jù)類型(可將數(shù)組聲明為任何基本數(shù)據(jù)類型、結(jié)構(gòu)或者對象類),數(shù)組的所有元素必須都是該類型數(shù)據(jù)。但是如果數(shù)據(jù)類型是 Object,則單個數(shù)組元素可以包含各種類型的數(shù)據(jù)(如對象、字符串、數(shù)
|