所有數(shù)組由連續(xù)的內(nèi)存位置組成。 最低地址對應(yīng)于第一個元素,最高地址對應(yīng)于最后一個元素。
要在VB.Net中聲明數(shù)組,可以使用Dim語句。 例如,
Dim intData(30) ' an array of 31 elements Dim strData(20) As String ' an array of 21 strings Dim twoDarray(10, 20) As Integer 'a two dimensional array of integers Dim ranges(10, 100) 'a two dimensional array
您還可以在聲明數(shù)組時初始化數(shù)組元素。 例如,
Dim intData() As Integer = {12, 16, 20, 24, 28, 32} Dim names() As String = {"Karthik", "Sandhya", _ "Shivangi", "Ashwitha", "Somnath"} Dim miscData() As Object = {"Hello World", 12d, 16ui, "A"c}
可以通過使用數(shù)組的索引來存儲和訪問數(shù)組中的元素。 以下程序演示了這一點:
Module arrayApl Sub Main() Dim n(10) As Integer ' n is an array of 11 integers ' Dim i, j As Integer ' initialize elements of array n ' For i = 0 To 10 n(i) = i + 100 ' set element at location i to i + 100 Next i ' output each array element's value ' For j = 0 To 10 Console.WriteLine("Element({0}) = {1}", j, n(j)) Next j Console.ReadKey() End Sub End Module
當(dāng)上述代碼被編譯和執(zhí)行時,它產(chǎn)生了以下結(jié)果:
Element(0) = 100 Element(1) = 101 Element(2) = 102 Element(3) = 103 Element(4) = 104 Element(5) = 105 Element(6) = 106 Element(7) = 107 Element(8) = 108 Element(9) = 109 Element(10) = 110
ReDim [Preserve] arrayname(subscripts)
Preserve關(guān)鍵字有助于在調(diào)整現(xiàn)有數(shù)組大小時保留現(xiàn)有數(shù)組中的數(shù)據(jù)。
arrayname是要重新維度的數(shù)組的名稱。
subscripts指定新維度。
Module arrayApl Sub Main() Dim marks() As Integer ReDim marks(2) marks(0) = 85 marks(1) = 75 marks(2) = 90 ReDim Preserve marks(10) marks(3) = 80 marks(4) = 76 marks(5) = 92 marks(6) = 99 marks(7) = 79 marks(8) = 75 For i = 0 To 10 Console.WriteLine(i & vbTab & marks(i)) Next i Console.ReadKey() End Sub End Module
當(dāng)上述代碼被編譯和執(zhí)行時,它產(chǎn)生了以下結(jié)果:
0 85 1 75 2 90 3 80 4 76 5 92 6 99 7 79 8 75 9 0 10 0
VB.Net允許多維數(shù)組。多維數(shù)組也被稱為矩形數(shù)組。
你可以聲明一個二維的字符串?dāng)?shù)組:
Dim twoDStringArray(10, 20) As String
或者,整數(shù)變量的3維數(shù)組:
Dim threeDIntArray(10, 10, 10) As Integer
下面的程序演示創(chuàng)建和使用二維數(shù)組:
Module arrayApl Sub Main() ' an array with 5 rows and 2 columns Dim a(,) As Integer = {{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}} Dim i, j As Integer ' output each array element's value ' For i = 0 To 4 For j = 0 To 1 Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i, j)) Next j Next i Console.ReadKey() End Sub End Module
當(dāng)上述代碼被編譯和執(zhí)行時,它產(chǎn)生了以下結(jié)果:
a[0,0]: 0 a[0,1]: 0 a[1,0]: 1 a[1,1]: 2 a[2,0]: 2 a[2,1]: 4 a[3,0]: 3 a[3,1]: 6 a[4,0]: 4 a[4,1]: 8
Jagged數(shù)組是一個數(shù)組的數(shù)組。 以下代碼顯示了聲明一個名為score of Integers的不規(guī)則數(shù)組:
Dim scores As Integer()() = New Integer(5)(){}
下面的例子說明使用不規(guī)則數(shù)組:
Module arrayApl Sub Main() 'a jagged array of 5 array of integers Dim a As Integer()() = New Integer(4)() {} a(0) = New Integer() {0, 0} a(1) = New Integer() {1, 2} a(2) = New Integer() {2, 4} a(3) = New Integer() {3, 6} a(4) = New Integer() {4, 8} Dim i, j As Integer ' output each array element's value For i = 0 To 4 For j = 0 To 1 Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i)(j)) Next j Next i Console.ReadKey() End Sub End Module
當(dāng)上述代碼被編譯和執(zhí)行時,它產(chǎn)生了以下結(jié)果:
a[0][0]: 0 a[0][1]: 0 a[1][0]: 1 a[1][1]: 2 a[2][0]: 2 a[2][1]: 4 a[3][0]: 3 a[3][1]: 6 a[4][0]: 4 a[4][1]: 8
Array類是VB.Net中所有數(shù)組的基類。 它在系統(tǒng)命名空間中定義。 Array類提供了處理數(shù)組的各種屬性和方法。
下表提供了一些Array類中最常用的屬性 :
SN | 屬性名稱和說明 |
---|---|
1 | IsFixedSize 獲取一個值,指示數(shù)組是否具有固定大小。 |
2 | IsReadOnly 獲取一個值,該值指示Array是否為只讀。 |
3 | Length 獲取一個32位整數(shù),表示數(shù)組所有維度中元素的總數(shù)。 |
4 | LongLength 獲取一個64位整數(shù),表示數(shù)組所有維度中元素的總數(shù)。 |
5 | Rank 獲取數(shù)組的排名(維數(shù))。 |
下表提供了一些最常用的Array類方法:
SN | 方法名稱和說明 |
---|---|
1 | Public Shared Sub Clear (array As Array, index As Integer, length As Integer) 設(shè)置一個范圍的數(shù)組元素的零,為false,或為空,這取決于元素類型。 |
2 | Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, length As Integer) 復(fù)制一定范圍內(nèi)由數(shù)組以第一個元素的元素,并將它們粘貼到起始于第一個元素另一個數(shù)組。長度被指定為32位整數(shù)。 |
3 | Public Sub CopyTo (array As Array, index As Integer) 將當(dāng)前的一維數(shù)組到指定的一維數(shù)組從指定的目標(biāo)數(shù)組索引處的所有元素。索引被指定為32位整數(shù)。 |
4 | Public Function GetLength (dimension As Integer) As Integer 獲取一個32位整數(shù),它表示數(shù)組的指定維中的元素的數(shù)量。 |
5 | Public Function GetLongLength (dimension As Integer) As Long 獲取一個64位整數(shù),它代表了數(shù)組的指定維中的元素的數(shù)量。 |
6 | Public Function GetLowerBound (dimension As Integer) As Integer 獲取下界在數(shù)組中指定的尺寸。 |
7 | Public Function GetType As Type 獲取當(dāng)前實例的類型(從Object繼承)。 |
8 | Public Function GetUpperBound (dimension As Integer) As Integer 獲取上限在數(shù)組中指定的尺寸。 |
9 | Public Function GetValue (index As Integer) As Object 獲取在一維數(shù)組中指定位置的值。索引被指定為32位整數(shù)。 |
10 | Public Shared Function IndexOf (array As Array,value As Object) As Integer 搜索指定的對象,并返回第一次出現(xiàn)的整個一維數(shù)組中的索引。 |
11 | Public Shared Sub Reverse (array As Array) 反轉(zhuǎn)在整個一維數(shù)組中的元素的順序。 |
12 | Public Sub SetValue (value As Object, index As Integer) 在一維陣列中的指定位置設(shè)置一個值的元素。索引被指定為32位整數(shù)。 |
13 | Public Shared Sub Sort (array As Array) 使用排序了IComparable實現(xiàn)陣列中的每個元素在整個一維數(shù)組中的元素。 |
14 | Public Overridable Function ToString As String 返回表示當(dāng)前對象(從Object繼承)的字符串。 |
有關(guān)Array類屬性和方法的完整列表,請參閱Microsoft文檔。
下面的程序演示使用的一些Array類的方法:
Module arrayApl Sub Main() Dim list As Integer() = {34, 72, 13, 44, 25, 30, 10} Dim temp As Integer() = list Dim i As Integer Console.Write("Original Array: ") For Each i In list Console.Write("{0} ", i) Next i Console.WriteLine() ' reverse the array Array.Reverse(temp) Console.Write("Reversed Array: ") For Each i In temp Console.Write("{0} ", i) Next i Console.WriteLine() 'sort the array Array.Sort(list) Console.Write("Sorted Array: ") For Each i In list Console.Write("{0} ", i) Next i Console.WriteLine() Console.ReadKey() End Sub End Module
當(dāng)上述代碼被編譯和執(zhí)行時,它產(chǎn)生了以下結(jié)果:
Original Array: 34 72 13 44 25 30 10 Reversed Array: 10 30 25 44 13 72 34 Sorted Array: 10 13 25 30 34 44 72
更多建議: