數組
在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,則單個數組元素可以包含各種類型的數據(如對象、字符串、數字等等)。