- 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