首页 > 编程 > .NET > 正文

VB.Net学习笔记(数组)

2024-07-10 13:01:36
字体:
来源:转载
供稿:网友
数组


在vb.net中数组有了很大的改变。首先象在简单赋值章节描述的:数组的索引编号总是从零开始;并且数组的元素类型是强类型,即数组中所包含的每一个元素都必须是相同的类型。

array对象
在vb.net中使用dim iarr(5) as int32这种语法表示的数组实际上是声明了一个array对象的实例。array对象是位于system命名空间中。这个对象提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。不过虽然array 类是支持数组的语言实现的基类。但是,只有系统和编译器能够从 array 类显式派生。用户应当使用语言提供的数组构造。array对象提供了一些重要的属性和方法,来便于我们操作数组。



array数组操作举例

dim iarr(5) as int32 'iarr.length=6

dim barr(5, 5) as boolean 'barr.rank=2,barr.length=36





array.clear(iarr, 0, iarr.length - 1)



for i as int32 = iarr.getupperbound(0) to 0 step -1 'iarr.getupperbound(0)=5

'数组的元素为

iarr.setvalue(i, i)

next



array.sort(iarr) '数组元素经过排序后为0,1,2,3,4,5



for i as int32 = 0 to iarr.getupperbound(0)

'输出数组元素

next






arraylist对象
ayyar的容量是固定的,vb.net提供的redim语句实际上是利用了arraylist对象的能力。arraylist是array的复杂版本。arraylist其实是把array当作集合处理,当然就可以将容量根据需要进行自动扩展了。arraylist既然是以集合的方式处理,所以它当然位于system. collections 命名空间中了。

不过array相对于arraylist来讲也有其优势:array可以有多个纬度,但arraylist只可以有一个纬度。在array的元素中值类型不需要进行装箱和卸箱的操作,所以在值类型方面,array比arraylist具有高的多的效率。(数据类型将在后期的类型章节描述。)



使用arraylist对象更改array对象容量大小举例

dim iarr(5) as int32



for i as int32 = 0 to iarr.getupperbound(0)

iarr.setvalue(i, i) '0,1,2,3,4,5

next



dim iarrlist as new system.collections.arraylist(iarr) 'iarrlist.count=6

for i as int32 = 6 to 10

iarrlist.add(i)

next 'iarrlist.count=11

iarrlist.insert(5, 99) 'iarrlist.count=12

iarrlist.capacity = 100 'iarrlist.count=12

iarrlist.trimtosize() 'iarrlist.count=12

iarr = iarrlist.toarray(gettype(int32))

for i as int32 = 0 to iarr.getupperbound(0) 'iarr.getupperbound(0)=11

'输出:0,1,2,3,4,99,5,6,7,8,9,10

next




数组声明指定需要一个数据类型(可将数组声明为任何基本数据类型、结构或者对象类),数组的所有元素必须都是该类型数据。但是如果数据类型是 object,则单个数组元素可以包含各种类型的数据(如对象、字符串、数字等等)。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表