VB.Net - 數(shù)組

2022-05-24 16:18 更新

數(shù)組存儲相同類型的元素的固定大小順序集合。 數(shù)組用于存儲數(shù)據(jù)集合,但將數(shù)組視為同一類型的變量的集合通常更有用。

所有數(shù)組由連續(xù)的內(nèi)存位置組成。 最低地址對應(yīng)于第一個元素,最高地址對應(yīng)于最后一個元素。


在VB.Net數(shù)組

在VB.Net中創(chuàng)建數(shù)組

要在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

動態(tài)數(shù)組

動態(tài)數(shù)組是可以根據(jù)程序需要進行維度和重新定義的數(shù)組。 您可以使用ReDim語句聲明一個動態(tài)數(shù)組。
ReDim語句的語法:

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

多維數(shù)組

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

不規(guī)則數(shù)組

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類

Array類是VB.Net中所有數(shù)組的基類。 它在系統(tǒng)命名空間中定義。 Array類提供了處理數(shù)組的各種屬性和方法。

Array類的屬性

下表提供了一些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類的方法

下表提供了一些最常用的Array類方法:

SN方法名稱和說明
1

Public Shared Sub Clear (array As Array, index As Integer, length As Integer)
公共共享子清除(數(shù)組為數(shù)組,指數(shù)為整數(shù),長度為整數(shù))

設(shè)置一個范圍的數(shù)組元素的零,為false,或為空,這取決于元素類型。

2

Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, length As Integer)
公共共享子復(fù)制(sourceArray作為數(shù)組,destinationArray作為數(shù)組,長度為整數(shù))

復(fù)制一定范圍內(nèi)由數(shù)組以第一個元素的元素,并將它們粘貼到起始于第一個元素另一個數(shù)組。長度被指定為32位整數(shù)。

3

Public Sub CopyTo (array As Array, index As Integer)
公共Sub CopyTo(數(shù)組為數(shù)組,指數(shù)為整數(shù))

將當(dāng)前的一維數(shù)組到指定的一維數(shù)組從指定的目標(biāo)數(shù)組索引處的所有元素。索引被指定為32位整數(shù)。

4

Public Function GetLength (dimension As Integer) As Integer
公共功能對GetLength(尺寸為整數(shù))作為整數(shù)

獲取一個32位整數(shù),它表示數(shù)組的指定維中的元素的數(shù)量。

5

Public Function GetLongLength (dimension As Integer) As Long
公共職能GetLongLength(尺寸為整數(shù)),只要

獲取一個64位整數(shù),它代表了數(shù)組的指定維中的元素的數(shù)量。

6

Public Function GetLowerBound (dimension As Integer) As Integer
公共職能GetLowerBound(尺寸為整數(shù))作為整數(shù)

獲取下界在數(shù)組中指定的尺寸。

7

Public Function GetType As Type
公共職能的GetType為類型

獲取當(dāng)前實例的類型(從Object繼承)。

8

Public Function GetUpperBound (dimension As Integer) As Integer
公共職能GetUpperBound(尺寸為整數(shù))作為整數(shù)

獲取上限在數(shù)組中指定的尺寸。

9

Public Function GetValue (index As Integer) As Object
公共職能的GetValue(指數(shù)為整數(shù))作為對象

獲取在一維數(shù)組中指定位置的值。索引被指定為32位整數(shù)。

10

Public Shared Function IndexOf (array As Array,value As Object) As Integer
公共共享功能的IndexOf(數(shù)組作為數(shù)組,值作為對象)作為整數(shù)

搜索指定的對象,并返回第一次出現(xiàn)的整個一維數(shù)組中的索引。

11

Public Shared Sub Reverse (array As Array)
公共共享子反向(陣列陣列)

反轉(zhuǎn)在整個一維數(shù)組中的元素的順序。

12

Public Sub SetValue (value As Object, index As Integer)
公用Sub的SetValue(價值為對象,指數(shù)為整數(shù))

在一維陣列中的指定位置設(shè)置一個值的元素。索引被指定為32位整數(shù)。

13

Public Shared Sub Sort (array As Array)
公共共享子排序(數(shù)組為數(shù)組)

使用排序了IComparable實現(xiàn)陣列中的每個元素在整個一維數(shù)組中的元素。

14

Public Overridable Function ToString As String
公眾可重寫的ToString函數(shù)作為字符串

返回表示當(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

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號