精华内容
下载资源
问答
  • 我们都知道在全部程序设计语言中数组都是一个非常重要的概念,数组的作用是同意程序猿用同...本文主要介绍VB.NET数组的使用,希望对大家的使用带来帮助。 数组中的第一个元素的下标称为下界,最后一个元素的下标称...

     

    我们都知道在全部程序设计语言中数组都是一个非常重要的概念,数组的作用是同意程序猿用同一个名称来引用多个变量,因此採用数组索引来区分这些变量。非常多情况下利用数组索引来设置一个循环,这样就能够高效地处理复杂的情况,因此在非常多情况下,使用数组能够缩短或者简化程序的代码。本文主要介绍VB.NET数组的使用,希望对大家的使用带来帮助。


    数组中的第一个元素的下标称为下界,最后一个元素的下标称为上界,其余的元素连续地分布在上下界之间,而且数组在内存中也是用连续的区域来存储的,所以要求声明数组每维的长度不能超过Long数据类型的最大值,即264—1=263。

    我们把VB.NET数组当作一个对象来处理,这就意味着数组类型是单个引用类型,数组变量包括指向构成数组元素、数组维和数组长度等数据的指针,数组之间互相赋值事实上仅仅是在相互复制指针,并且数组继承了System名字空间的Array类。

    VB.NET中提供的数组类型和VB 6.0中有一些区别,我们将在以下做具体的解说。

    (1)VB.NET数组的声明

    VB.NET中的数组有两种类型:定长数组和动态数组。这里先介绍定长数组的几种不同的声明方式,不同的声明方法将导致数组不同的有效范围。

    ◆Dim语句在模块段建立模块级数组,比如:

    1. Dim arrayl(3)As Integer  

    ◆Public语句在模块的声明部分建立一个公共数组,比如:

    1. Public counttype(20)as string  

    ◆Static语句声明一个过程内的局部数组,比如:

    1. Public Sub Ipaddress()  
    2. Static server(30)as string  
    3. End Sub 

    VB.NET还提供了新的数组初始化语法,仅仅须要简单的语句就能够完毕数组的声明和初始化,比如:

    1. New array initialization syntax  
    2. Dim arrayl As Integer()={2,4,8} 

    在VB.NET中,为了和其它语言更加易于协同操作,数组的下标均设定为0,不同意声明一个下界为1的数组,因此Option Base语句不再被VB.NET支持,并且在声明一个数组时必须用它的元素个数,而不是它的上界来初始化,比如:

    1. //声明一个一维数组具有3个元素,下标从0~2  
    2. Dim arrayl(3)As Integer  
    3. arrayl(0):2  
    4. arrayl(1)=4  
    5. arrayl(2)=8 

    以上声明的数组有三个元素,下标从0到2,假设代码企图訪问下标为3的数组元素,将引起执行错误。

    (2)二维数组及多维数组

    除了较为简单的一维数组外,VB.NET还支持多维数组,其声明方法和一维数组没有太大的差别,比如:

    1. StatiC multidim(10,10)as double  
    2.  Public Singledim(5,8,10,3)as single 

    以上语句声明了一个lO行,10列的二维数组。在VB.NET中,数组最多有32维,并且每一维的长度都不可以超过Long数组类型的最大值。数组总尺寸的限制是不一样的,这与所採用的操作系统以及计算机中使用的内存量有关。数组的维数将保留在System.Array.Rank属性中,每维的长度可以由System.Array.GetLengfll方法来得到。须要提醒注意的是,因为VB.NET中数组是以0为基的,假设返回来的值为9,则表示数组是10维的。当为数组继续加入维数的时候,使其扩展为多位数组,此时会使数组所需的存储空间大幅度添加,所以在使用多维数组时对这个方面也要多加考虑。

    另外VB.NET还提供了Lbound()和Lbound()两个函数来返回数组的上、下界。中国自学编程网整理公布 ,www.zxbc.cn对于一维数组而言,仅仅须要一个參数,那便是数组名。比如:

    1. one==Ubound(arrayl) 

    对于多位数组,也仅仅是简单地将逗号后面的第二个參数指定为数组的第几维。比如:

    1. tw0=Lbound(multidim,7) 

    假设没有指明是哪一维,系统默觉得第一维。

    (3)动态数组

    有时在程序执行之前无法确认数组的大小,VB.NET提供了在程序执行时动态决定数组大小的功能,即动态数组。它具有灵活多变的特点,能够在不论什么时候依据须要随时改变数组的大小,有助于内存的管理。建立一个动态数组的具体过程例如以下:

    ①和声明一般数组一样,能够使用前面介绍的几种声明,仅仅是赋一个空维数组,这样就将数组声明为动态数组。典型的声明语句为:

    1. Dim types(  )  As integer 

    ②然后使用ReDim语句来配置数组大小。ReDim语句声明仅仅能在过程其中使用,它是可运行语句,能够改变数组中元素的个数,可是却不能够改变数组的维数,就是说不能把一维变为二维。在ReDim语句配置数组元素个数时,数组中的内容将所有置为0。典型语句为:

    1. ReDim Types(X+1)  

    ③假设想改变数组大小又不想丢失原来的数据,仅仅要在ReDim语句中包括Preservekeyword就能够,典型语句为:

    1. ReDa_m PresetVe Types(10,23) 

    对于多维数组,在使用Preservekeyword时,仅仅能改动最后一维的大小。假设改变其它维,那么将出现执行错误。假设不清楚某维的当前大小,能够使用GetI~ength函数来获取。

    (4)VB.NET数组的使用

    在’VB 6.0中,能够用For Each来循环遍历一个数组。比如:

    1. Dim x As Integer  
    2.   F0r Each x In arrayl  
    3.   Console.WriteLine(x)  
    4.   Next 

    在VB.NET中能够使用For循环和数组长度来遍历一个数组。比如:

    1. Dim i As工nteger  
    2.    F0r i=0 T0  (arrayl.Length-1)  
    3.  
    4.    Console.WriteLine(arrayl(1)J  
    5.    Next i  

    在使用数组时还要注意,不仅声明语法有变化,并且在执行时处理方式也有了非常大的变化。VB.NET在堆栈中给数组分配地址空间,当向一个方法传递数组类型的參数时,使用的是引用传递而不是值传递。以下是互相传递数组引用的三个方法:

    1. Dim arrayl(3,3)AS Integer  
    2.     Dim array2 As Integer(,)  
    3.     Redim array2(3,3)  
    4.     Dim array3 As Integer(,)={{2,4},{12,29}}  

    方法一在两个方向同一时候传递了数组引用,一般用来向调用者返回数组引用。方法二和方法三从调用者向方法的实现中传递了数组引用。方法二的參数被声明为一维数组,而在方法三中參数被声明成了-维数组。

    (5)数组的高级特性

    ①数组的数组

    在O~ect数组中还能够组装不同类型的数组。比如,下面代码中先建立两个数组,一个是Integer类型,还有一个是String类型,然后再声明一个O~ect类型的数组,把前两个数组分装在当中。

    1. Dim I as integer  
    2. //声明一个integer类型的数组  
    3. Dim grade(15)as integer  
    4. For i:0 tO 14  
    5. Grade(i)=i  
    6. NeXt i  
    7. //声明一个string类型的数组  
    8. Dim name(15)as String  
    9. For i=0 tO 14  
    10. Name(i):”Student”&cstr(i)  
    11. Next i  
    12. //声明一个新的数组为object,用来组装其它数组  
    13. Dim Student(2)as object  
    14. Student(0)=grade  
    15. Student(1)=name  
    16. Msgbox(student(0)(2))  //显示”2”  
    17. Msgbox(student(1)(3))  //显示”student 3”。 

    上述代码中使用了student(0)和student(1)的后绑定。注意,仅仅有在Option s~ict被关闭时,VB.NET编译器才同意使用后绑定。

    ②数组和集合

    尽管集合通经常使用于操作对象,可是它也能操作数据类型。在某些条件下,其效率比数组还要高。我们能够通过下面4个方面来进行比較。

    ◆集合能够依据须要进行扩充,不像数组那样需预先规定大小。

    ◆数组仅仅能保存声明时所定义的数据类型,可是同一个集合中能够存储不同类型的数据。

    ◆集合元素的改动较为麻烦,不像数组那么方便。

    ◆处理集合的速度较数组慢,可是在处理较小的动态条目集,使用集合是最为理想的选择。

    转载于:https://www.cnblogs.com/mfrbuaa/p/4353346.html

    展开全文
  • vb.net 数组定义详解

    千次阅读 2017-08-10 16:53:13
    数组(Arrays),可以用相同名字引用一系列变量,并用数字(索引)来识别它们,在许多场合,使用数组可以...在vb.net中,所有的数组都是以“0”为起始长度的,这与vb 6.0完全不一样,在vb 6.0中,如果写下以下语句:

    数组(Arrays),可以用相同名字引用一系列变量,并用数字(索引)来识别它们,在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组的元素下标是连续的。由于vb.net对每一个索引值都分配空间,所以不要不切实际地声明一个太大的数组。

    在vb.net中,所有的数组都是以“0”为起始长度的,这与vb 6.0完全不一样,在vb 6.0中,如果写下以下语句:
    Dim x(10) As Single

    可以假定x数组的元素从1到10的,但它实际上总是包含第0个元素,换句话来说,x数组实际上是含有11个元素。

    在vb.net中,这样的数组含有10个元素,编号为0到9,使我们在处理数组的长度和编号的情况与C、C++、C#和Java具有一致性,如下例:
    Dim Max As Integer
    Max=10
    Dim x(Max)
    For j=0 to Max-1
    x(j)=j
    Next j
    从上面例子可以看出,数组的最后一个元素的编号,总是数组的长度减1。

    展开全文
  • dim arr(参数1,参数2) 参数1和参数2 分别代表什么意思?
  • 其次根据是否可以被重新定义数组可以分为静态数组和动态数组。一维数组与多维数组一维数组,即上节课程介绍的形式,也是默认情况下的数组形式,一维数组特点是只有一个下标。例如定义一个含有5个元素的一维数组,...
    上节课我们已经学习了数组的基本概念,本节课程我们来一起学习数组的分类,以及它们的声明方法。数组分类:首先根据维数,数组可以被分为一维数组和多维数组。其次根据是否可以被重新定义,数组可以分为静态数组和动态数组。一维数组与多维数组一维数组,即上节课程介绍的形式,也是默认情况下的数组形式,一维数组特点是只有一个下标。例如定义一个含有5个元素的一维数组,其在内存中的形式如下图所示:a589849936a7f953b5d91ca98da32030.png二维数就是数组里有数组。实际上,二维数组就是在一维数组的基础上,每个元素不在是一个具体的数据类型,而是再存储一个一维数组二维数组有两个下标。比如A(5,3)这个二维数组。其共有6*4=24个元素。分别是A(0,0)、A(0,1)...A(5,2)、A(5,3)这24个元素。我们可以将其想象为一个Excel表格,其形式如下图所示:f8689eab9a687a6326fd34cf6105970e.png多维数组,同二维数组类似,即三维数组有3个下标,4维数组有4个下标,以此类推。在VB中最多可以定义60维的数组。虽然VB提供了最多60维的数组,但是实际上我们最为常用的是一维数组以及二维数组,有时候会用到三维数组。其它多维数组通常使用的很少。这里小伙伴只要掌握一维数组和二维数组即可。如果今后确实需要用到更高维的数组,其使用方法与一维、二维数组的是一样的。静态数组与动态数组在VB中,数组按照能否被重新定义分为静态数组和动态数组。所谓静态数组,是指在定义时,已经指定了数组的下标,数组长度已经确定,在被定义后,无法再进行更改。动态数组,在某些情况下,不能事先确定数据的具体个数,那么这就可以采用动态数组来解决问题。动态数组与静态数组相反,在定义动态数组时,不需要定义其下标,而在使用动态数组时则需要用Redim语句来重新定义数组,并指定下标。数组的声明像变量一样,我们要使用一个数组前,必须事先进行声明,也就是定义一个数组后,才可以使用它。一维数组声明方法
    Dim 数组名([下标 To] 上标) [as 类型]1:Dim A(5) as integer2:Dim B%(1 To 6)
    说明:1,下标缺省时下标为0,可以用Option Base 1申明缺省下标为1。2,数据类型缺省时,默认为变体型。3,数组名的定义需要符合VB中标识符定义的要求。4,数组长度等于上标-下标+1,数组长度就是数组元素的个数。5,数组名+下标即可确定某个数组元素。以例1来说,A(0)即表示第一个数组元素,A(5)即表示最后一个数组元素。二维数组声明方法
    Dim 数组名([下标1 To] 上标1, [下标2 To] 上标2) [as 类型]1:Dim  Arr(2,4) as String2:Dim B$(1 To 3,1 To 5)
    动态数组声明方法建立动态数组要分两步:第1步,用Dim语句声明数组,但不能指定数组大小
    Dim 数组名() as 数据类型
    第2步,用ReDim语句动态的分配元素个数
    ReDim [preserve] 数组名(下标1[,下标2...])
    例:Dim s() as SingleSub Form_Load()    ...    ReDim s(2,3)    ...    ReDim Preserve s(4,8)    ...End sub
    注意:在重新用redim定义数组后,数组内的数据全部清除。如需要保留之前的数据,则需要在定义时用 preserve 声明一下。即不加preserve关键词,那么该数组之前的数据将会全部被初始化,而使用preserve关键词后,数组之前的数据将会予以保留。使用动态数组时,切记次要点。好了,今天的全部内容就是这样了,我们下节课再见。

    6163aeebc18ee5e9160451d377976cee.png

    展开全文
  • hello各位小伙伴,从本章我们学习VB中的一个重要内容——数组。我们在编程时,如果涉及的数据量不是很多,那么可以直接定义几个变量用于存储和处理数据。但很多时候需要处理大量的数据,那么这种情况下则需要用到...
    hello各位小伙伴,从本章我们学习VB中的一个重要内容——数组。我们在编程时,如果涉及的数据量不是很多,那么可以直接定义几个变量用于存储和处理数据。但很多时候需要处理大量的数据,那么这种情况下则需要用到数组。利用数组进行数据存储与处理,可以极大简化程序、提高编程效率。数组的概念数组定义:相同数据类型的变量按一定顺序排列的集合。1252d63d566466e7bc3a282b56ec769b.png也就是说,数组不是一种数据类型,而是一种相同数据类型的集合一个数组包括数组名、数组元素、下标、数据类型。数组名:用于标识数组,类似于变量名,其代表了内存中整个连续的存储空间。数组元素:即数组中的变量具体的值,通过数组名和下标来引用数组中的元素。数组元素的个数就是数组的长度,在数组定义时确定(动态数组除外)。下标:默认从0开始,用于区分数组元素。数据类型:即数组中每个元素的数据类型,通常来说一个数组中的所有数据元素都是相同的数据类型。数据类型在数组定义时被确定。

    如上图所示,A(0)表示数组A的第一个元素,其值为5;A(1)表示数组A的第2个元素,其值为10;A(5)表示数组A的第6个也就是最后一个元素,其值为3。

    那为什么需要数组呢?我们在处理数据时,通常会定义个一个变量用来存储和处理数据。举个栗子,需要计算两个数相加的合值时,我们可以定义三个变量。如下面代码所示:
        Dim a%, b%, sum%    a = InputBox("输入第一个数")    b = InputBox("输入第二个数")    sum = a + b    MsgBox a & "+" & b & "=" & sum
    但是,如果数据量很大,比如需要计算100个数的合值时,该怎么做呢?如果还是使用上面的方法,定义100个变量,然后再把100个变量相加,那么代码将会非常的繁琐。各位可以尝试一下不用数组如何完成100个数相加。然后你会发现——好困难。哈哈,这样你才能在接下来深刻的理解数组的妙处。采用数组来解决上面这个问题时,只需要使用For循环就可以轻松完成任意数量的数相加问题。比如:
    Dim i%,sum as LongDim A%(99)'定义了一个数组,数组名为A,数组长度为100,数据类型是整数型    For i=0 To 99            sum=sum+A(i)    'A(i)表示数组元素    Next i
    如上所示,我们可以利用数组名+下标,将下标定义为一个循环变量i,在循环体内实现求解。这就是数组最大的好处了。当然上面这个例子并没有为数组赋值,因此默认为0。赋值的方法将在后面详细教学。OK,本节课程就到这里,相信大家对数组已经有了一个基本的认识了。我们下节课程再见吧。

    886dfa390c8c438c619461c1c30180f4.png

    展开全文
  • VB结构体数组定义

    2012-07-17 22:28:50
    我在程序中用到结构体:当结构体里面的数组都是一维时,我在结构体里面定义都没有定义维数:比如: Public Type O_Data data() As ObsVal ComSateRS() As XYZRS End Type Public obs_data() As O_Data ...
  • 请问,vb中: dim list(2000,15)这是什么意思?
  • 同样定义一个二维数组 Dim bb As Integer(,) 与 Dim bb(,) As Integer 有什么区别 我是真想不出来,感觉一模一样 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim ...
  • vb.net 数组动态定义

    2012-04-16 17:01:23
    为数组变量重新分配存储空间。 复制 ...ReDim [ Preserve ] name(boundlist) [ , name(boundlist) [, ......定义 Preserve 可选。 修饰符,当仅更改最后一个维度的...
  • 上一篇分享了方法的基本使用和java中方法的一些技巧及其注意事项,那么这篇文章就分享一些不同于前两篇的内容。...数组定义方式一 : 指定长度数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];数组...
  • 今日内容:数组概念数组的定义数组的索引数组内存数组的遍历数组作为方法参数和返回值数组概念数组概念:数组就是存储多个数据的容器,数组的长度固定,多个数据的数据类型要一致。数组的定义方式一格式:数组存储的...
  • 首先定义数组,我是同事session传值的 代码如下:Dim struser As New List(Of String)struser = Session(“chooseuser”)strruser = “” For a = 0 To struser.Count – 1If a = 0 Thenstrruser = “‘” & struser...
  • VB.net里定义数组遇到个问题,并且初始化数组的内容。我定义数组是一个已经定义好的类型。文档里给出,这个类型是名称:Node。Node有两个属性,一个是ID,一个是Name。现在要定义一个Node类型的数组,并且初始化。 ...
  • java 重定义数组的实现方法(与VB的ReDim相像),需要的朋友可以参考一下
  • vb定义数组,在vb.net怎样转? vb中定义:P_Name = Array( "OrderNo ", "WorkNo ", "Dtl_No ", "LotNo ", "num ") vb.net中怎样用啊,急急啊,帮帮我吧! _____________________________________________________...
  • VB数组介绍

    2013-11-01 08:38:27
    详细讲解了VB中数组的应用,并介绍了用户定义数组和控件数组的建立和使用。
  • vb6.0里的type定义数组和直接定义成全局变量的数组有什么不同,type的数组需要分配内存空间么?怎么给type里的数组分配内存空间啊?
  • VB编程中,数组占据着相当重要的作用,往往结合循环控制结构、函数过程出现在程序代码中。今天,以求解数组最大值、最小值为例,带领大家学习一下数组的基本应用。首先是定义一个数组,然后再用Rnd随机函数给数组...
  • vb.net 数组去除重复

    千次阅读 2016-02-24 11:26:50
    Public Function ...String() '去除重复函数,返回数组       '这个对象用来存储非重复数据,我这里是去除重复域名,所以定义这个名字         Dim Lst_Domains As New List(Of String)()      Dim Str
  • vb6.0中文编程数组集合重复的判断机制是什么?怎么定义数组不允许出现完全一样的两行?能不能禁止数据的两行完全一样?
  • VB_08 数组 定义

    2010-09-17 15:39:09
    VB_08 数组 定义 基础 适合初学者 基本的定义语句 法则

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 453
精华内容 181
关键字:

vb定义数组