明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

VB.Net學(xué)習(xí)筆記(數(shù)組)

[摘要]數(shù)組 在VB.Net中數(shù)組有了很大的改變。首先象在簡(jiǎn)單賦值章節(jié)描述的:數(shù)組的索引編號(hào)總是從零開(kāi)始;并且數(shù)組的元素類型是強(qiáng)類型,即數(shù)組中所包含的每一個(gè)元素都必須是相同的類型。Array對(duì)象在VB.Ne...
數(shù)組


在VB.Net中數(shù)組有了很大的改變。首先象在簡(jiǎn)單賦值章節(jié)描述的:數(shù)組的索引編號(hào)總是從零開(kāi)始;并且數(shù)組的元素類型是強(qiáng)類型,即數(shù)組中所包含的每一個(gè)元素都必須是相同的類型。

Array對(duì)象
在VB.Net中使用Dim iArr(5) As Int32這種語(yǔ)法表示的數(shù)組實(shí)際上是聲明了一個(gè)Array對(duì)象的實(shí)例。Array對(duì)象是位于System命名空間中。這個(gè)對(duì)象提供創(chuàng)建、操作、搜索和排序數(shù)組的方法,因而在公共語(yǔ)言運(yùn)行庫(kù)中用作所有數(shù)組的基類。不過(guò)雖然Array 類是支持?jǐn)?shù)組的語(yǔ)言實(shí)現(xiàn)的基類。但是,只有系統(tǒng)和編譯器能夠從 Array 類顯式派生。用戶應(yīng)當(dāng)使用語(yǔ)言提供的數(shù)組構(gòu)造。Array對(duì)象提供了一些重要的屬性和方法,來(lái)便于我們操作數(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)過(guò)排序后為0,1,2,3,4,5



For i As Int32 = 0 To iArr.GetUpperBound(0)

'輸出數(shù)組元素

Next






ArrayList對(duì)象
Ayyar的容量是固定的,VB.Net提供的ReDim語(yǔ)句實(shí)際上是利用了ArrayList對(duì)象的能力。ArrayList是Array的復(fù)雜版本。ArrayList其實(shí)是把Array當(dāng)作集合處理,當(dāng)然就可以將容量根據(jù)需要進(jìn)行自動(dòng)擴(kuò)展了。ArrayList既然是以集合的方式處理,所以它當(dāng)然位于System. Collections 命名空間中了。

不過(guò)Array相對(duì)于ArrayList來(lái)講也有其優(yōu)勢(shì):Array可以有多個(gè)緯度,但ArrayList只可以有一個(gè)緯度。在Array的元素中值類型不需要進(jìn)行裝箱和卸箱的操作,所以在值類型方面,Array比ArrayList具有高的多的效率。(數(shù)據(jù)類型將在后期的類型章節(jié)描述。)



使用ArrayList對(duì)象更改Array對(duì)象容量大小舉例

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ù)組聲明指定需要一個(gè)數(shù)據(jù)類型(可將數(shù)組聲明為任何基本數(shù)據(jù)類型、結(jié)構(gòu)或者對(duì)象類),數(shù)組的所有元素必須都是該類型數(shù)據(jù)。但是如果數(shù)據(jù)類型是 Object,則單個(gè)數(shù)組元素可以包含各種類型的數(shù)據(jù)(如對(duì)象、字符串、數(shù)