标题:Viviwei VB.NET系列教程(二)
只看楼主
Viviwei
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:344
专家分:0
注 册:2006-4-11
 问题点数:0 回复次数:7 
Viviwei VB.NET系列教程(二)

第二节 数组
一,数组概述
何谓数组?首先,我们要从组看起.一组,就是一行或者一列,数组,也就是说有数行或数列,而从微软的解释上来看,数组是属于立体概念的.也就是说,数组是像动画片一样,有一维动画,二维动画,还有现在的三维动画.我想在维数上面大家在看动画片的时候就能有深刻的理解了.这个是算比较通俗的理解了.
下面咱们再来看看程序上对数组的概括: 数组(Arrays),可以用相同名字引用一系列变量,并用数字(索引)来识别它们.由此可见数组是有编号可言的,这就像一个班集体一样,每个人都有自己的学号..
总体来说,数组就是一组带有索引的容器,相当于一间教室的位置,而上面已经编好了座位号.
二, 数组的声明
在vb.net中,所有的数组都是以“0”为起始长度的,也就是说,所有数组的起点都是0,位置0也代表一个容器.如果一个数组定义为Dim x(10) As Single,那么它是可以存储10个Single的变量的.这样的数组含有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 x(m,z) As String
‘那么它的容器是怎么分配呢?
Dim I As Integer = 0
Dim j As Integer = 0
For I =0 to m-1
For j = 0 to z-1
X(I,j)=I+j ‘我们可以试试计算有多少个这样的位数,结果为m*z的积
Next
Next
上面的例子可以充分的看出数组的立体性,以及可延伸性,当然如果你有需求,还可以定义三维的数组,四维的数组,在理论上来讲,是可以无限制的延伸下去.当然,前提条件是你有需求.例如我们定义一个三维数组:Dim x(5,6,8) as string 等等…
三,数组长度的控制及动态数组
此外,vb.net还引进了一个数组列表(ArrayList)对象来代替原来的集合(Collection)对象,集合对象的长度计数总是从1开始的,而且在需要的时候,数组列表的长度可以是不定的。数组列表的基本的方法和集合一样,只不过它还具有一些新的功能方法。
例如:
Dim Arl As ArrayList '构建一个数组列表
For j=0 to 10
Arl.Add(j)
Next j
所有的数组变量都有一个长度属性,这样就可以得知这个数组有多大:
Dim Z(20) As Single
Dim j As Integer
For j=0 to z.Length-1
Z(j)=j
Next j
在vb.net中所有的数组都是动态的,可以在任何时候重新定义数组的长度,然而,在vb.net中已经没有ReDim Preserve表述了,可以使用New关键字来对任何一个数组进行引用,并且重新定位:
'在类模块级声明
Dim X() As Single
'重新定位
X=New Single(20){}
注意:数组类型后面的大括号不要忘记写。
和集合对象一样,数组列表含有一个“Count”属性和一个“Item”属性,允许使用“index”来访问数组列表中的元素。而且,和集合对象一样,这个属性也可以省略,感觉就像操作数组一样:
For i=0 to ar.Count-1
textbox1.text=(ar.Item(i))
textbox2.text= (ar(i))
Next I
下表为数组列表的一些方法:
Clear 清空数组列表的内容
Contains(object) 如果数组列表含有该对象则返回true
CopyTo(array) 把一个数组列表拷贝到一个一维的数组中去
IndexOf(object) 返回第一个元素的值
Insert(index,object) 在指定的位置插入一个元素
Remove(object) 把一个元素从列表中删除
RemoveAt(index) 把一个指定位置的元素从列表中删除
Sort 对列表进行排序
注意:一个数组中的所有元素具有相同的数据类型。当然,当数据类型为“object”时,各个元素能够包含不同种类的数据(对象、字符串、数值等)。可以声明任何基本数据类型的数组,包括用户自定义的类型和对象变量。此外,数组在vb.net中已经是完全的动态的了。
Viviwei编写
版权由Viviwei所有
交流QICQ:85474440
E-Mail:wei01062003@yahoo.com.cn

下面是该文件的Word文档.单击开始下载....

Cg7JHJjR.rar (6.47 KB) Viviwei VB.NET系列教程(二)


搜索更多相关主题的帖子: NET Viviwei 动画片 微软 三维动画 
2007-06-16 11:43
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 

辛苦了. 收藏..


女侠,约吗?
2007-06-16 12:12
哓龙
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-7-6
得分:0 

拿了,谢谢分享。

2007-07-06 17:15
ssfkqccnui
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-14
得分:0 
Viviwei你好,我是个新手,我想问下这真是基础教程吗?我怎么感觉还是看的云里雾里啊.
有些问题请教下:
Dim Max As Integer '定义一个max的整型变量
Max=10 '给max赋直10
Dim x(Max) '定义一个x数组,其长度为max,也就是10
For j=0 to Max-1 '这个是循环吧?才讲的数组怎么又来循环了?j=0 to max-1是什么意思?max为什么要-1?不能直接
写成j=0 to 9 吗?
x(j)=j 'x(j)=j x(j)里面的这个j的直是多少? 被赋予的j的直又是多少啊?
Next j '这个也不明白
2007-07-14 14:25
Viviwei
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:344
专家分:0
注 册:2006-4-11
得分:0 

For j=0 to Max-1 '这个是循环吧?才讲的数组怎么又来循环了?j=0 to max-1是什么意思?max为什么要-1?不能直接写成j=0 to 9 吗?

当然可以。。

具体解释一下:
Dim Max As Integer '定义一个Integer变量Max
Max=10 '赋值10
Dim x(Max) '定义一个名为x的数组,包含的元素数量为10个,注意,数组元素为空。。相当于定义了10个内存虚拟位置。。
For j=0 to Max-1 '设置一个循环,为数组赋值Max-1是为下面赋值用。
x(j)=j '由于数组的赋值是从0开始的,所以10个位置赋值应该为x(0),x(1),x(2)...x(9)
Next j 'Next j 是循环的方法,表示上述循环条件成立 j则加1 ,你可以理解为j++

所以最终的结果,我们可以直接写出来
x(0)=0
x(1)=1
x(2)=2
x(3)=3
.....
x(9)=9

[此贴子已经被作者于2007-8-30 17:22:37编辑过]


爱上思考,爱上编程,爱上.net!
2007-08-30 17:20
tiyaoli
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-1-26
得分:0 
回复:(Viviwei)For j=0 to Max-1 \'这个是循环...
Max=10 '赋值10
Dim x(Max) '定义一个名为x的数组,包含的元素数量为10个,注意,数组元素为空。。相当于定义了10个内存虚拟位置。。

vb.net 定义的数组是有区别的.
x(max)应该包含的元素数量为11个.即 0,1,2,.....10
难道我学的那本教程有问题吗?

[此贴子已经被作者于2007-8-30 18:34:46编辑过]

2007-08-30 18:28
catfree
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2016-6-6
得分:0 
Viviwei 精品系统

in order to find the sea and fling caution to the winds
2016-06-06 10:15
jiazx
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2018-7-15
得分:0 
辛苦了. 收藏..
2018-10-10 23:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-147955-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.607034 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved