数组是程序中经常要使用到的一种数据类型Visual BasicNet中的数组虽然语法结构等方面保留了和Visual Basic的很多相似之处但也与Visual Basic存在着很多区别其最大也是各位Visual Basic程序员所最不能容忍的区别就是如下二点
在Visual Basic Net中申明一个数组其数组元素中的索引值的起点全部都为而不是以前Visual Basic中的索引值起点一般都为这种定义方法和Visual Basic Net的孪生姐妹Visual C#非常相似
由于在Visual Basic Net中数组都有了统一的起点所以在Visual Basic Net中定义一个数组也就不再需要关键字To来设定数组的范围这样在Visual Basic Net中申明一个数组将会比Visual Basic中要稍微简洁一点关于数组定义将在后面详细介绍
一.本节主要内容
在接下来内容中将结合具体示例来详细的介绍下列知识点
申明数组其中包括一维数组多维数组也包括静态数组和动态数组及其初始化和访问数组中的元素
重新申明数组即ReDim语句的使用用法及其Preserve关键字的作用
使用For Each … Next语句来遍历数组中各个元素For Each … Next语句是操作数据最为常用的一种语句它能够方便的访问到数组中的每一个元素
申明参数为数组的过程或者函数由于数组是引用类型所以在申明参数为数组的函数或过程时处理方法与参数为值类型的函数或过程有点不一样
简要介绍Array类和其主要的常用以及通过Array类操作数组的具体方法查看 更多内容请看Java编程开发手册NET移动与嵌入式技术NET开发手册专题或进入讨论组讨论
在Visual BasicNet申明一个数组使用的依然是Dim语句其申明数组和Visual Basic的主要区别在上面内容中已经简单说过了下面在Visual Basic Net申明一个长度为的字符串数组并对之进行初始化的代码
Dim arrString ( ) As String = {星期一星期二星期三}
下面代码是申请一个×的二维字符串数组并对之进行初始化
Dim arrDate ( ) As String = {{星期一 号} {星期二 号}}
静态数组和动态数组的区别就在于静态数组的长度是固定的而动态数组的长度是不固定的上面的申明的二个数组就是静态数组而下面二段代码的作用就是分别申明一个一维数组和二维数组并对它们进行初始化
Dim arrString ( ) As String = {星期一星期二星期三}
申明一个动态的一维数组并初始化
Dim arrDate ( ) As String = {{星期一 号} {星期二 号}}
申明一个动态的二维数组并初始化
对其他数据类型和更多维数的数组其申明和初始化方法和上面的基本差不多只需根据数组的维数和数据类型的不同进行相应的修改就可以了
当数组申明和初始化以后就可以通过元素在数组中对应的索引值来访问下面二段代码分别是访问上面申明并初始化的一维数组和二维数组中的一个元素
Dim sTemp As String = arrString ( )
访问arrString数组中的第个元素
Dim sTemp As String = arrDate ( )
访问arrDate数组中的第二行第二列元素
三.重新申明数组
在Visual Basic Net重新申明数组和Visual Basic中基本类似依然使用的是ReDim语句在Visual Basic Net中使用ReDim语句要注意以下三点
ReDim语句仅可以在过程级出现这意味着不可以在类或模块级代码区使用ReDim语句来重新申明数组
ReDim语句只是更改已被正式声明的数组的一个或多个维度的大小但不能更改该数组的维数
ReDim语句无法更改数组中元素的数据类型和Dim语句申明数组的区别在于无法在ReDim语句中初始化重新申明的数组
在使用ReDim重新申明数组时最为常见的关键字就是PreservePreserve的作用是表明在重新申明数组时是否要在重新申明的数组中复制原数组中的元素请比较下面二段代码
代码一
Dim arrString ( ) As String = {星期一星期二星期三}
ReDim Preserve arrString ( )
重新申明arrString数组数组的长度改为并且在新数组中复制原数组的元素
arrString ( ) = 星期四
arrString ( ) = 星期五
代码二
Dim arrString ( ) As String = {星期一星期二星期三}
ReDim arrString ( )
重新申明arrString数组数组的长度改为并不往新数组中复制原数组的元素
arrString ( ) = 星期一
arrString ( ) = 星期二
arrString ( ) = 星期三
arrString ( ) = 星期四
arrString ( ) = 星期五
通过比较上述二段代码可见在第一段代码中由于ReDim中使用了Preserve关键字所以在重新申明数组时就在新数组中复制了原数组的元素这样就只需要对其中的二个元素进行初始化而第二段由于没有使用Preserve关键字就没有在新数组中带入原数组中的任何元素所以对数组的所有元素都进行初始化通过比较相信您对重新定义数组和Preserve关键字的使用有了更深的理解
用Photoshop给漂亮的烫发MM抠图
Photoshop透明婚纱抠图大法
Photoshop:让MM做个变色龙
用Photoshop来制作一款精美的宝宝照片墙
Photoshop绝色美女通道抠图法
用Photoshop教你打造绚丽光芒效果
For Each … Next语句好像只是为二种数据类型专门度身定做的其一就是集合另外一个就是数组了通过For Each … Next语句可以十分方便的访问数组中的任一元素请仔细分析一下下列代码
Dim arrString ( ) As String = {星期一星期二星期三}
Dim Temp As String
For Each Temp In arrString
If Temp = 星期三 Then
MsgBox ( 在数组中寻找到星期三字符串)
Exit For
退出For Each … Next语句
End If
Next
上面代码的功能是通过For Each … Next语句访问arrString数组中各元素如果发现有元素为字符串星期三则弹出提示框并退出循环
同样用For … Next语句也能够实现上面同样的功能只是感觉有点不专业并且有点繁琐下面代码是用For … Next语句实现上面For Each … Next语句同等功能的代码
Dim i As Integer
For i = To myStringLength
If arrString ( i ) = 星期三 Then
MsgBox ( 在数组中寻找到星期三字符串 )
Exit For
End If
Next
五.申明参数为数组的过程或者函数
由于数组为引用类型所以如果以数组为参数过程和函数在定义时候就要多加以注意下面代码是在Visual BasicNet申明一个参数为数组的过程的典型代码可见在调用数组类型之前多了一个关键字ByValByVal关键字的作用在于在下面调用的过程中的不能更改数组的数值
Sub DisplayArray ( ByVal myString ( ) As String )
End Sub
六.简要介绍SystemArray类及其成员
Array类是一个基类是公共语言运行库中所有数组的基类它提供了创建操作搜索和排序数组的方法数组中任一个元素就是Array中的一个值Array的长度是它可包含的元素总数Array的秩是Array中的维数Array中维度的下限是Array 中该维度的起始索引多维Array的各个维度可以有不同的界限表和表分别是Array类的常用属性和常用方法及其说明
属性说明IsFixedSize获取指示Array是否具有固定大小的值IsReadOnly获取指示Array是否为只读的值Length获取Array的所有维度中的元素总数Rank获取Array的秩(也就是维数)表SystemArray类的常用属性及其说明
方法
说明BinarySearch使用二进制搜索算法在一维的排序Array中搜索值Clear将Array中的一系列元素设置为零false或空引用(即Nothing)具体操作时设定值取决于元素类型Copy将一个Array的一部分复制到另一个Array中并根据需要执行强制类型转换和装箱CopyTo将当前一维Array的所有元素复制到指定的一维Array中(从指定的目标Array索引开始)GetLength获取Array的指定维度中的元素数GetLowerBound获取Array中指定维度的下限GetUpperBound 获取Array的指定维度的上限GetValue 获取当前Array中指定元素的值LastIndexOf返回一维Array或部分Array中某个值的最后一个匹配项的索引Reverse反转一维Array或部分Array中元素的顺序SetValue 将当前Array中的指定元素设置为指定值Sort对一维Array对象中的元素进行排序
表SystemArray类的常用方法及其说明巧 巧 读 书:更多内容请看Java编程开发手册NET移动与嵌入式技术NET开发手册专题或进入讨论组讨论
下面介绍的示例的功能包含了数组的申明初始化重新申明重新初始化数组中各元素的排序数组的遍历查找以及以数组为参数的过程的定义及调用方法等下面是此示例实现的具体步骤
启动Visual Studio Net
选择菜单【文件】|【新建】|【项目】后弹出【新建项目】对话框
将【项目类型】设置为【Visual Basic项目】
将【模板】设置为【Windows应用程序】
在【名称】文本框中输入【数组】
在【位置】的文本框中输入【E:VSNET项目】然后单击【确定】按钮这样在E:VSNET项目目录中就产生了名称为数组的文件夹并在里面创建了名称为【数组】的项目文件
把Visual Studio Net的当前窗口切换到【Formvb(设计)】窗口并从【工具箱】中的【Windows窗体组件】选项卡中往Form窗体中拖入下列组件并执行相应操作
四个Button组件分别用来创建一个创建一维数组创建创建二维数组实现对对一维数组排序和实现重定义一维数组并在这四个Button组件拖入Form的设计窗体后分别双击这四个组件这样系统会在Formvb文件分别产生这四个组件的Click时间对应的处理代码
一个ListBox组件用来显示创建的一维数组的内容
按照表中数值来设定设定组件的主要属性
组件类型 组件名称 属性 设置结果Form Form Text 数组篇Form MaximizeBox FalseFormMinimizeBox FalseForm FormBorderStyle FixedSingle
ListBox ListBox ItemHeight ListBox Location Point ( )ListBox Size Size ( )
Button Button Text 创建一维数组Button FlatStyle FlatButton Text 创建二维数组Button FlatStyle FlatButton Text 对一维数组排序Button FlatStyle FlatButton Text 重定义一维数组Button FlatStyle Flat
表表【数组】项目窗体中各组件的主要属性设定数值表
并按照图中各组件的位置大小和排列方式来调整窗体中各个组件
图【数组】项目的设计界面
把Visual Studio Net的当前窗口切换到【Formvb】进入Formvb文件的编辑界面然后用下列的代码替换Formvb中Button组件的Click事件对应的处理代码下列代码的功能是通过创建输入对话框来创建一个一维数组
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
Dim i As Integer
For i = To
arrString ( i ) = InputBox ( 请在下面文本框中输入字符串 请输入字符串 来初始化创建的一维数组! Item &i )
Next
ButtonEnabled = True
ButtonEnabled = True
DisplayArray ( arrString )
End Sub
用下列的代码替换Formvb中Button组件的Click事件对应的处理代码下列代码的功能是创建一个二维数组并进行初始化
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
Dim arrDate ( ) As String = {{星期一 号} {星期二 号}}
创建一个二维数组并初始化
MsgBox ( arrDate ( ) )
访问这个二维数组中的元素
End Sub
用下列的代码替换Formvb中Button组件的Click事件对应的处理代码下列代码的功能是首先定义一个名称为DisplayArray的过程此过程能够对给定的一维数组中的数据进行排序并通过ListBox显示出来其次是定义Button的Click事件在此事件中对调用DisplayArray过程对一维数组中的数据进行排序
定义一个过程过程的功能是通过ListBox组件显示给定的字符串数组中各元素
Sub DisplayArray ( ByVal myString ( ) As String )
ListBoxItemsClear ( )
Dim Temp As String
For Each Temp In myString
ListBoxItemsAdd ( Temp )
Next
End Sub
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
ArraySort ( arrString )
DisplayArray ( arrString )
End Sub
用下列的代码替换Formvb中Button组件的Click事件对应的处理代码下列代码的功能是重新定义一维数组
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
ReDim Preserve arrString ( )
请注意Preserve关键字的作用
Dim i As Integer
For i = To
arrString ( i ) = InputBox ( 请在下面文本框中输入字符串 请输入字符串 来初始化重新创建的一维数组! Item &i )
Next
DisplayArray ( arrString )
End Sub
保存上面的所有修改至此【数组】项目的全部工作就完成了此时单击快捷键F运行程序图图是程序编译后的运行界面
图输入字符串来初始化一维数组的界面
图对一维数组中的各元素进行排序后的界面
八.总结
本文首先介绍了Visual Basic Net中的数组和原先版本的Visual Basic中的区别在Visual Basic Net中数组从内涵上更像Visual C#其次介绍了数组的申明方法其中包括一维数组多维数组也包括静态数组和动态数组初始化数组及其访问数组中的元素接着介绍了重新申明数组方法即ReDim语句的使用用法及其Preserve关键字的作用以及使用For Each … Next语句来遍历数组中各个元素For Each … Next语句是操作数据最为常用的一种语句它能够方便的访问到数组中的每一个元素比用For ……Next语句要方便了许多最后介绍在以数组为参数的过程和函数的调用方法和Array类和其主要的使用方法之所以提出来介绍以数组为参数的过程和函数的调用方法是因为数组是引用类型所以在申明参数为数组的函数或过程时处理方法与参数为值类型的函数或过程有点不一样Array是Net FrameWorkSDK中提供用来操作数组的类本文主要是介绍利用Array类操作数组的具体方方法法以上就是本文的主要内容相信仔细阅读并进行相应练习的读者一定已经掌握了