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
或者,一个整数变量的3维数组-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
-
锯齿状数组
锯齿状数组是数组的数组。以下代码显示声明一个锯齿状数组,名为Integers的得分-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类是VB.Net中所有数组的基类。它在系统名称空间中定义。Array类提供了与数组一起使用的各种属性和方法。属性属性 描述 IsFixedSize 获取一个值,该值指示Array是否具有固定大小。 IsReadOnly 获取一个值,该值指示Array是否为只读。 Length 获取一个32位整数,该整数表示Array所有维度中的元素总数。 LongLength 获取一个64位整数,该整数表示Array所有维度中的元素总数。 Rank 获取数组的等级(维数)。 方法下表提供了Array类的一些最常用方法-方法 描述 Public Shared Sub Clear (array As Array, index As Integer, length As Integer) 根据元素类型,将Array中的元素范围设置为零,false或null。 Public Shared Sub Copy (sourceArray As Array, destinationArray As Array, length As Integer) 从第一个元素开始的数组中复制一系列元素,并将其粘贴到从第一个元素开始的另一个Array中。长度指定为32位整数。 Public Sub CopyTo (array As Array, index As Integer) 从指定的目标数组索引开始,将当前一维数组的所有元素复制到指定的一维数组。索引被指定为32位整数。 Public Function GetLength (dimension As Integer) As Integer 获取一个32位整数,该整数表示Array指定维中的元素数。 Public Function GetLongLength (dimension As Integer) As Long 获取一个64位整数,该整数表示Array指定维中的元素数。 Public Function GetLowerBound (dimension As Integer) As Integer 获取数组中指定维的下限。 Public Function GetType As Type 获取当前实例的Type(继承自Object)。 Public Function GetUpperBound (dimension As Integer) As Integer 获取数组中指定维的上限。 Public Function GetValue (index As Integer) As Object 获取一维数组中指定位置的值。索引被指定为32位整数。 Public Shared Function IndexOf (array As Array,value As Object) As Integer 搜索指定的对象,并返回整个一维Array中第一次出现的索引。 Public Shared Sub Reverse (array As Array) 反转整个一维数组中元素的顺序。 Public Sub SetValue (value As Object, index As Integer) 为一维数组中指定位置的元素设置一个值。索引被指定为32位整数。 Public Shared Sub Sort (array As Array) 使用Array每个元素的IComparable实现对整个一维Array中的元素进行排序。 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