数组
数组是同一数据类型的一组变量的集合。
定义数组语法为:
Dim 数组名(索引上限) As 数据类型
例如:
Dim
Names(3) As String表示定义了一个字符型(String)数组,数组名为“Names”,数组的索引从0开始,所以该数组包括4个字符型变量(我们称之为数组元素),分别是:
Names(0), Names(1), Names(2), Names(3)
数组有一个Length属性,用于返回数组的长度。
下面是一段完整的代码,用于测试数组的基本特性,请复制到命令窗口执行:
Dim
Names(3) As String可以在定义数组的时候,直接给数组元素赋值,例如:
Dim Values() As Integer = {1,3,5}
上面的代码定义了一个整数型数组,数组包括三个元素,分别是1、3、5。
再例如:
Dim
s1() As String = {"中国","美国","日本","俄罗斯"}上面的代码定义了一个字符型数组,数组包括四个元素。
如果采用直接赋值的方式定义数组,不需要指定数组的索引上限,此时索引上限由值的个数确定。
可以在定义数组之后,再给数组批量赋值:
Dim
s1() As StringFoxtable提供了一个类Array,这个类有大量的共享方法用于对数组进行操作,其中比较常用的有:
名称 | 说明 |
IndexOf | 获取某个值在数组中第一次出现的位置,如果未出现,返回-1。 |
LastIndexOf | 获取某个值在数组中最后一次出现的位置,如果未出现,返回-1。 |
Sort | 对数组排序。 |
Reverse | 反转数组顺序。 |
请在命令窗口执行以下代码,用以测试上述方法:
Dim
vals() As
Integer = {1,3,5,2,4,5,6}
Output.Show(Array.Indexof(Vals,
5))
Output.Show(Array.LastIndexof(Vals,
5))
Array.Sort(Vals)
Output.Show(Array.Indexof(vals,
5))
Array.Reverse(vals)
Output.Show(Array.Indexof(vals,
5))
得到的输出结果依次为2、5、4、1,注意索引从0开始,所以1其实表示位置2。
Sort方法可以对两个数组进行联动排序,下面用一个例子来说明,假定一个数组存储了学生姓名,一个数组存储了学生分数,元素位置一一对应,希望按分数高低排序学生姓名,参考代码:
Dim
nms() As
String = {"A","B","C"}
'学生姓名
Dim
vals() As
Integer = {8,
6, 7}
'对应分数
Array.Sort(vals,
nms)
'第一个数组为排序数组,第二个数组跟随第一个数组排序
Output.Show(nms(0)
& "="
& vals(0))
Output.Show(nms(1)
& "="
& vals(1))
Output.Show(nms(2)
& "="
& vals(2))
在命令窗口执行上述代码,输出结果依次为:B=6、C=7、A=8,显示两个数组都进行了正确的排序。