数组是程序中经常要使用到的一种数据类型,Visual Basic .Net中的数组,虽然语法结构等方面保留了和Visual Basic的很多相似之处,但也与Visual Basic存在着很多区别。其最大,也是各位Visual Basic程序员所最不能容忍的区别就是如下二点:
  
  1. 在Visual Basic .Net中申明一个数组,其数组元素中的索引值的起点全部都为“0”,而不是以前Visual Basic中的索引值起点一般都为“1”。这种定义方法和Visual Basic .Net的孪生姐妹Visual C#非常相似。
  
  2. 由于在Visual Basic .Net中数组都有了统一的起点,所以在Visual Basic .Net中定义一个数组,也就不再需要关键字“To”来设定数组的范围。这样在Visual Basic .Net中申明一个数组将会比Visual Basic中要稍微简洁一点。关于数组定义将在后面详细介绍。
  
  一.本节主要内容:
  在接下来内容中,将结合具体示例来详细的介绍下列知识点:
  
  1. 申明数组,其中包括一维数组、多维数组,也包括静态数组和动态数组,及其初始化。和访问数组中的元素。
  
  2. 重新申明数组,即ReDim语句的使用用法,及其Preserve关键字的作用。
  
  3. 使用For Each …. Next语句来遍历数组中各个元素,For Each …. Next语句是操作数据最为常用的一种语句,它能够方便的访问到数组中的每一个元素。
  
  4. 申明参数为数组的过程或者函数,由于数组是引用类型,所以在申明参数为数组的函数或过程时,处理方法与参数为值类型的函数或过程有点不一样。
  
  5. 简要介绍Array类和其主要的常用,以及通过Array类操作数组的具体方法。
  
  二.申明、初始化数组和访问数组中的元素:
  在Visual Basic .Net申明一个数组使用的依然是Dim语句,其申明数组和Visual Basic的主要区别在上面内容中已经简单说过了。下面在Visual Basic .Net申明一个长度为“3”的字符串数组,并对之进行初始化的代码:
  
  Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}
  
  下面代码是申请一个2×2的二维字符串数组,并对之进行初始化:
  
  Dim arrDate ( 1, 1 ) As String = {{"星期一", "18号"}, {"星期二", "19号"}}
  
  静态数组和动态数组的区别就在于静态数组的长度是固定的,而动态数组的长度是不固定的。上面的申明的二个数组就是静态数组,而下面二段代码的作用就是分别申明一个一维数组和二维数组,并对它们进行初始化:
  
  Dim arrString ( ) As String = {"星期一","星期二","星期三"}
  '申明一个动态的一维数组,并初始化
  Dim arrDate ( , ) As String = {{"星期一", "18号"}, {"星期二", "19号"}}
  '申明一个动态的二维数组,并初始化
  
  对其他数据类型和更多维数的数组,其申明和初始化方法和上面的基本差不多,只需根据数组的维数和数据类型的不同进行相应的修改就可以了。
  
  当数组申明和初始化以后,就可以通过元素在数组中对应的索引值来访问,下面二段代码分别是访问上面申明并初始化的一维数组和二维数组中的一个元素:
  
  Dim sTemp1 As String = arrString ( 1 )
  '访问arrString数组中的第2个元素
  Dim sTemp2 As String = arrDate ( 1 , 1 )
  '访问arrDate数组中的第二行、第二列元素
  
  三.重新申明数组:
  在Visual Basic .Net重新申明数组和Visual Basic中基本类似,依然使用的是ReDim语句。在Visual Basic .Net中使用ReDim语句要注意以下三点:
  
  1. ReDim语句仅可以在过程级出现。这意味着不可以在类或模块级代码区使用ReDim语句来重新申明数组。
  
  2. ReDim语句只是更改已被正式声明的数组的一个或多个维度的大小,但不能更改该数组的维数。
  
  3. ReDim语句无法更改数组中元素的数据类型,和Dim语句申明数组的区别在于无法在ReDim语句中初始化重新申明的数组。
  
  在使用ReDim重新申明数组时,最为常见的关键字就是“Preserve”。“Preserve”的作用是表明在重新申明数组时,是否要在重新申明的数组中复制原数组中的元素。请比较下面二段代码:
  
  代码一:
  Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}
  ReDim Preserve arrString ( 4 )
  '重新申明arrString数组,数组的长度改为5,并且在新数组中复制原数组的元素
  arrString ( 3 ) = "星期四"
  arrString ( 4 ) = "星期五"
  
  代码二:
  Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}
  ReDim arrString ( 4 )
  '重新申明arrString数组,数组的长度改为5,并不往新数组中复制原数组的元素
  arrString ( 0 ) = "星期一"
  arrString ( 1 ) = "星期二"
  arrString ( 2 ) = "星期三"
  arrString ( 3 ) = "星期四"
  arrString ( 4 ) = "星期五"
  
  通过比较上述二段代码,可见,在第一段代码中由于ReDim中使用了Preserve关键字,所以在重新申明数组时,就在新数组中复制了原数组的元素,这样就只需要对其中的二个元素进行初始化;而第二段由于没有使用Preserve关键字,就没有在新数组中带入原数组中的任何元素,所以对数组的所有元素都进行初始化。通过比较相信您对重新定义数组和“Preserve”关键字的使用有了更深的理解。
  
  四.For Each …. Next语句在数组中的使用:
  For Each …. Next语句好像只是为二种数据类型专门度身定做的,其一就是集合,另外一个就是数组了。通过For Each …. Next语句,可以十分方便的访问数组中的任一元素。请仔细分析一下下列代码:
  
  Dim arrString ( 2 ) 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 = 0 To myString.Length - 1
  If arrString ( i ) = "星期三" Then
  MsgBox ( "在数组中寻找到""星期三""字符串" )
  Exit For
  End If
  Next
  
  五.申明参数为数组的过程或者函数:
  由于数组为引用类型,所以如果以数组为参数过程和函数在定义时候就要多加以注意,下面代码是在Visual Basic .Net申明一个参数为数组的过程的典型代码,可见在调用数组类型之前多了一个关键字“ByVal”,“ByVal”关键字的作用在于在下面调用的过程中的不能更改数组的数值:
  
  Sub DisplayArray ( ByVal myString ( ) As String )
  End Sub
  
  六.简要介绍System.Array类及其成员:
  Array类是一个基类,是公共语言运行库中所有数组的基类。它提供了创建、操作、搜索和排序数组的方法。数组中任一个元素就是Array中的一个值。 Array的长度是它可包含的元素总数。Array的秩是Array中的维数。Array中维度的下限是Array 中该维度的起始索引,多维Array的各个维度可以有不同的界限。表01和表02分别是Array类的常用属性和常用方法及其说明: 
  
  七.一个处理数组的具体示例:
  下面介绍的示例的功能包含了数组的申明、初始化、重新申明、重新初始化、数组中各元素的排序、数组的遍历、查找以及以数组为参数的过程的定义及调用方法等。下面是此示例实现的具体步骤:
  
  1. 启动Visual Studio .Net。
  
  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。
  
  3. 将【项目类型】设置为【Visual Basic项目】。
  
  4. 将【模板】设置为【Windows应用程序】。
  
  5. 在【名称】文本框中输入【数组】。
  
  6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在“E:\VS.NET项目”目录中就产生了名称为“数组”的文件夹,并在里面创建了名称为【数组】的项目文件。
  
  7. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应操作:
  
  四个Button组件,分别用来创建一个“创建一维数组”、创建“创建二维数组”、实现对“对一维数组排序”和实现“重定义一维数组”。并在这四个 Button组件拖入Form1的设计窗体后,分别双击这四个组件,这样系统会在Form1.vb文件分别产生这四个组件的Click时间对应的处理代码。
  
  一个ListBox组件,用来显示创建的一维数组的内容。
  
  8. 按照表03中数值来设定设定组件的主要属性:
  

  并按照图01中各组件的位置、大小和排列方式来调整窗体中各个组件:

http://www.sunxin.org/article/777.html

转载于:https://www.cnblogs.com/no7dw/archive/2009/07/27/1532180.html

在 VB.NET 编程中使用数组相关推荐

  1. c语言程序越界,浅析C语言编程中的数组越界问题

    因为C语言不检查数组越界,而数组又是我们经常用的数据结构之一,所以程序中经常会遇到数组越界的情况,并且后果轻者读写数据不对,重者程序crash.下面我们来分析一下数组越界的情况: 1) 堆中的数组越界 ...

  2. Shell编程中的数组定义、遍历

    数组定义法1: arr=(1 2 3 4 5) # 注意是用空格分开,不是逗号!!数组定义法2: array array[0]="a" array[1]="b" ...

  3. 三菱FX3U——ST编程中的数组

    点击数据类型,弹出选择对话框: 勾选[数组],输入数组数量: 数组可以减少创建相同数据类型的变量: 通过数组标签名[下标] 对某一个数组赋值: 编译报错,建立的数组元素数是10个,数组的下标是从0开始 ...

  4. [转载]Shell编程中的数组定义、遍历

    https://www.coder4.com/archives/3853 转载于:https://www.cnblogs.com/muahao/p/6140129.html

  5. 简单的计算机程序代码,优秀程序员通过简单代码,窥探电脑编程中强大的数组操作功能...

    优秀程序员通过简单代码,窥探电脑编程中强大的数组操作功能.编程语言中,数组是一个非常重要的概念,也是一种很常用的类型.本文中通过javascript语言的代码实例,展现编程中数组的魅力.在javasc ...

  6. C语言中动态数组的作用,C语言实现动态数组

    前言 在纯C语言编程中,数组的创建必须是固定的大小,因为C语言本身没有提供动态数组这种数据结构,这是一个让习惯了使用高级语言编程的人转做C开发面临的一个很头疼的问题,本篇文章就将介绍如何使用纯C语言编 ...

  7. 【VS开发】【编程开发】【C/C++开发】结构体中的数组与指针的内存分配情况说明...

    [VS开发][编程开发][C/C++开发]结构体中的数组与指针的内存分配情况说明 标签:[VS开发] [编程开发] 主要是疑惑在结构体定义的数组的内存空间与指针动态分配的内存空间,在地址上连续性.以及 ...

  8. vb代码大全_【必会】Rnd随机函数在VB编程中的广泛应用

    大家好,今天我们共同来看一下Rnd随机函数在VB编程中的应用. VB中的Rnd随机函数 功能:产生[0,1)之间的一个随机数. 注意:包括0,但是取不到1. 如果要实现每次运行时,产生不同序列的随机数 ...

  9. 掌握shell编程中数组的常见用法及示例

    From: http://www.embeddedlinux.org.cn/html/jishuzixun/201211/19-2386.html 给大家分享下数组的用法小例子,希望能给大家一点帮助. ...

最新文章

  1. git或者ssh出错 fatal:open /dev/null or dup failed: No such file or directory、弹出mitty.dump文件
  2. Xcode 7中Static Cells自动计算高度失效的解决方法
  3. Spring Boot 最核心的 3 个注解详解
  4. tomcat7.0配置CORS(跨域资源共享)
  5. html flash层级,解决FLASH遮住其他层元素问题
  6. Windows安装.net Framework时安装不上,提示已处理证书链,但是在不受信任提供程序信任的根证书中终止
  7. pytorch torch.arange
  8. 统计学里“P”的故事:蚊子、皇帝的新衣和不育的风流才子
  9. python面试资格确认_Python面试必须要看的15个问题
  10. 位数(digits)的处理
  11. 区块链 PBFT最多多少个节点
  12. php 检测移动设备,Github项目Mobile-Detect-检测移动设备的php类
  13. 软件测试——测试用例和测试设计方法
  14. 自动化和半自动矢量化提取地物矢量轮廓
  15. RFT 实用CODE
  16. implode( -(php),php implode()函数 语法
  17. springboot 项目启动报Has been loaded by XML or SqlProvider, ignoring the injection of the SQL的错误的解决方案
  18. Python-ppt增加图片
  19. 消费者信任缺失,拼多多解决不了的问题其他平台能解决吗?
  20. LiveRTMP内置IPCamera实现RTMP直播摄像机功能

热门文章

  1. 让元素固定_49种元素对钢铁性能的影响
  2. JavaWeb——AOP
  3. Windows7安装PowerShell5.1方法(Flutter新版本需要)
  4. 程序转制作人——游戏设计课程导论
  5. Discuz论坛分表以及memcache缓存优化
  6. tensorflow 显存 训练_tensorflow手动指定GPU以及显存大小
  7. python str转json_Python中如何将一个字符串转换为json格式呢?
  8. 轻量级锁_一句话撸完重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等各种锁 不看后悔系列...
  9. java.io.IOException: output.properties data exceeds its limit [2048] hue的调度
  10. Hive与RDBMS的区别