
- VB.Net 基礎教程
- VB.Net - 首頁
- VB.Net - 概述
- VB.Net - 環境設定
- VB.Net - 程式結構
- VB.Net - 基本語法
- VB.Net - 資料型別
- VB.Net - 變數
- VB.Net - 常量
- VB.Net - 修飾符
- VB.Net - 語句
- VB.Net - 指令
- VB.Net - 運算子
- VB.Net - 決策制定
- VB.Net - 迴圈
- VB.Net - 字串
- VB.Net - 日期和時間
- VB.Net - 陣列
- VB.Net - 集合
- VB.Net - 函式
- VB.Net - 子程式
- VB.Net - 類和物件
- VB.Net - 異常處理
- VB.Net - 檔案處理
- VB.Net - 基本控制元件
- VB.Net - 對話方塊
- VB.Net - 高階窗體
- VB.Net - 事件處理
- VB.Net 高階教程
- VB.Net - 正則表示式
- VB.Net - 資料庫訪問
- VB.Net - Excel 表格
- VB.Net - 傳送郵件
- VB.Net - XML 處理
- VB.Net - Web程式設計
- VB.Net 有用資源
- VB.Net - 快速指南
- VB.Net - 有用資源
- VB.Net - 討論
VB.Net - 陣列
陣列儲存固定大小的相同型別元素的順序集合。陣列用於儲存資料集合,但通常將其視為相同型別變數的集合更有用。
所有陣列都由連續的記憶體位置組成。最低地址對應於第一個元素,最高地址對應於最後一個元素。

在 VB.Net 中建立陣列
要在 VB.Net 中宣告陣列,可以使用 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
您也可以在宣告陣列時初始化陣列元素。例如,
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}
可以使用陣列的索引來儲存和訪問陣列中的元素。以下程式演示了這一點 -
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
編譯並執行上述程式碼時,將產生以下結果 -
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** 語句宣告動態陣列。
ReDim 語句的語法 -
ReDim [Preserve] arrayname(subscripts)
其中,
**Preserve** 關鍵字有助於在調整陣列大小時保留現有陣列中的資料。
**arrayname** 是要重新設定維度的陣列的名稱。
**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
編譯並執行上述程式碼時,將產生以下結果 -
0 85 1 75 2 90 3 80 4 76 5 92 6 99 7 79 8 75 9 0 10 0
多維陣列
VB.Net 允許使用多維陣列。多維陣列也稱為矩形陣列。
您可以將一個二維字串陣列宣告為 -
Dim twoDStringArray(10, 20) As String
或者,一個三維整數變數陣列 -
Dim threeDIntArray(10, 10, 10) As Integer
以下程式演示了建立和使用二維陣列 -
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
編譯並執行上述程式碼時,將產生以下結果 -
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
交錯陣列
交錯陣列是陣列的陣列。以下程式碼顯示了宣告一個名為 scores 的整數交錯陣列 -
Dim scores As Integer()() = New Integer(5)(){}
以下示例說明了如何使用交錯陣列 -
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
編譯並執行上述程式碼時,將產生以下結果 -
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 中所有陣列的基類。它在 System 名稱空間中定義。Array 類提供各種屬性和方法來處理陣列。
Array 類的屬性
下表提供了一些最常用的 **Array** 類的 **屬性** -
序號 | 屬性名稱和描述 |
---|---|
1 |
IsFixedSize 獲取一個值,該值指示 Array 是否具有固定大小。 |
2 |
IsReadOnly 獲取一個值,該值指示 Array 是否為只讀。 |
3 |
Length 獲取一個 32 位整數,表示 Array 所有維度中元素的總數。 |
4 |
LongLength 獲取一個 64 位整數,表示 Array 所有維度中元素的總數。 |
5 |
Rank 獲取 Array 的秩(維度數)。 |
Array 類的方法
下表提供了一些最常用的 **Array** 類的 **方法** -
序號 | 方法名稱和描述 |
---|---|
1 |
Public Shared Sub Clear (array As Array, index As Integer, length As Integer) 將 Array 中的一系列元素設定為零、false 或 null,具體取決於元素型別。 |
2 |
Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, length As Integer) 將 Array 中從第一個元素開始的一系列元素複製到另一個 Array 中從第一個元素開始的位置。長度指定為 32 位整數。 |
3 |
Public Sub CopyTo (array As Array, index As Integer) 將當前一維 Array 的所有元素複製到指定的一維 Array 中,從指定的 Array 目標索引開始。索引指定為 32 位整數。 |
4 |
Public Function GetLength (dimension As Integer) As Integer 獲取一個 32 位整數,表示 Array 指定維度中元素的數量。 |
5 |
Public Function GetLongLength (dimension As Integer) As Long 獲取一個 64 位整數,表示 Array 指定維度中元素的數量。 |
6 |
Public Function GetLowerBound (dimension As Integer) As Integer 獲取 Array 中指定維度的下界。 |
7 |
Public Function GetType As Type 獲取當前例項的 Type(繼承自 Object)。 |
8 |
Public Function GetUpperBound (dimension As Integer) As Integer 獲取 Array 中指定維度的上界。 |
9 |
Public Function GetValue (index As Integer) As Object 獲取一維 Array 中指定位置的值。索引指定為 32 位整數。 |
10 |
Public Shared Function IndexOf (array As Array,value As Object) As Integer 搜尋指定的 object 並返回其在整個一維 Array 中第一次出現時的索引。 |
11 |
Public Shared Sub Reverse (array As Array) 反轉整個一維 Array 中元素的順序。 |
12 |
Public Sub SetValue (value As Object, index As Integer) 將值設定為一維 Array 中指定位置的元素。索引指定為 32 位整數。 |
13 |
Public Shared Sub Sort (array As Array) 使用 Array 的每個元素的 IComparable 實現對整個一維 Array 中的元素進行排序。 |
14 |
Public Overridable Function ToString As String 返回表示當前物件的字串(繼承自 Object)。 |
有關 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
編譯並執行上述程式碼時,將產生以下結果 -
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