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允许多维数组,多维数组也被称为矩形数组。可以声明一个2
维的字符串数组:
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
锯齿状的数组
锯齿状(Jagged)数组是数组的数组。下面的代码显示了声明一个名为 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
类的一些最常用的属性:
编号 | 属性 | 描述 |
---|---|---|
1 | IsFixedSize |
获取一个值,指示Array 是否具有固定大小。 |
2 | IsReadOnly |
获取一个值,指示数组是否是只读。 |
3 | Length |
获取一个32 位整数,表示数组所有维度中的元素总数。 |
4 | LongLength |
获取一个64 位整数,它表示数组中所有维的元素总数。 |
5 | Rank |
获取数组的等级(维数)。 |
Array类的方法
下表提供了一些最常用的Array
类的方法:
编号 | 方法 | 描述 |
---|---|---|
1 | Public Shared Sub Clear (array As Array, index As Integer, length As Integer) |
根据元素类型,将数组中的元素范围设置为零,为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) |
将当前一维数组的所有元素复制到指定的一维数组,从指定的目标数组索引开始。该索引被指定为一个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 |
获取数组中指定维度的下限。 |
7 | Public Function GetType As Type |
获取当前实例的Type(从Object 继承)。 |
8 | Public Function GetUpperBound (dimension As Integer) As Integer |
获取数组中指定维的上界。 |
9 | Public Function GetValue (index As Integer) As Object |
获取一维数组中指定位置的值。该索引被指定为一个32 位整数。 |
10 | Public Shared Function IndexOf (array As Array,value As Object) As Integer |
搜索指定的对象并返回整个一维数组中第一个匹配项的索引。 |
11 | Public Shared Sub Reverse (array As Array) |
颠倒整个一维数组中元素的顺序。 |
12 | Public Sub SetValue (value As Object, index As Integer) |
将值设置为一维数组中指定位置的元素。索引被指定为一个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
猿狮妹
2023-03-16
VB
Net
数组
在线教程
热门教程
1 VB.Net教程
VB.Net是Microsoft开发的一种简单的,现代的,面向对象的计算机编程语言,它将.NET Framework和公共语言运行时的强大功能与Visual Basic的优势相结合。本教程将介绍和讲解基本的VB.Net编程,并讲解各种有关VB.Net编程语言的基础、高级概念。
2 VB.Net Excel工作表
VB.Net支持Microsoft Excel 2010的COM对象模型和应用程序之间的互操作性。
要应用程序中使用这种互操作性,需要在Windows窗体应用程序中导入名称空间Microsoft
3 VB.Net程序结构
在学习VB.Net编程语言的基本构建块之前,先来看看一个最基本的VB.Net程序结构,以便可以在以后的章节中作为参考来理解程序代码块。
VB.Net Hello World示
4 VB.Net开发环境安装配置
在本章中,我们将讨论和学习可用于创建VB.Net应用程序的工具。
我们已经提到,VB.Net是.Net框架的一部分,用于编写.Net应用程序。 因此,在讨论用于运
5 VB.Net子程序(Sub)
在前面的章节中提到:子程序是不返回任何值的程序。到目前为止,在前面所有的例子中一直使用子过程Main。 在这些教程中,我们一直在编写控制台应
6 VB.Net第一个程序(Helloworld)
为了演示如何使用VS 2017创建一个简单的VB.net应用程序,这里将使用VS 2017来创建一个简单的“Hello,World”的控制台应用应用程序。这个例子将使用VB.NET
7 VB.Net数据类型
数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型决定了它在存储器中占用多少空间以及如何解释存储的位模式。
VB.Net数据类型VB.
8 VB.Net类和对象
当定义一个类时,就定义了一个数据类型的蓝图(或模板)。这实际上并没有定义任何数据,但它确实定义了类名和含义,即该类的一个对象将包含哪些内
9 VB.Net正则表达式
正则表达式是可以与输入文本进行匹配的模式。.Net 框架提供了允许这种匹配的正则表达式引擎。模式由一个或多个字符文字,运算符或构造组成。
用
10 VB.Net基本控件
对象是通过使用工具箱控件在Visual Basic 窗体上创建的一种用户界面元素。 实际上,在Visual Basic中,窗体(Form)本身就是一个对象。 每个Visual Basic 控件都