VB.Net学习笔记(数组)

笔记|数组

数组

在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,则单个数组元素可以包含各种类型的数据(如对象、字符串、数字等等)。

时间: 2024-10-30 21:35:48

VB.Net学习笔记(数组)的相关文章

VB.Net学习笔记(基础概念和语法)

笔记|概念|语法 从基础概念和语法开始 学一门语言,特别是现在都是可视化的开发了,但我建议还是不要急着先去拖拉几个控件,而是踏踏实实的先了解一下这门语言的概念.语法和规范. VB.Net虽然和以前的VB6在语法上非常的接近,但由于现在的VB.Net是全新的面向对象的语言,所以两者还是有些区别的. 正如大家所知道的,现在VB.Net已经全面支持各种面向对象的特性了,并且还有了一些其他.Net环境所需要的特性:继承.重载.重写属性和方法.实现构造函数和析构函数.接口.委托.异常.命名空间.程序集.特

VB.Net学习笔记(前言)

笔记 微软的.Net开发平台庞大且复杂,对于一般的开发人员来讲面临最现实的要求就是在短时间内掌握VB.Net的开发技巧,并希望找到一个捷径.虽然学习一门语言应该没有什么特别的捷径可以走(本人也不赞成所谓的21天精通***),但了解他人的学习方式和快速把握语言的重点还是有必要的. 我大约从2000年底开始接触.Net,几年来一直致力于.Net的开发和培训,或多或少也有了一些心得,现在写来为准备加入.Net战线的各位做一点贡献.

VB.Net学习笔记(变量生存期和赋值)

笔记|变量 变量有生存周期这一点程序员们都了解,在VB.Net中增加了一个修饰Shared.Shared 关键字指示一个或多个被声明的编程元素将被共享.要点是:共享元素不关联于某类或结构的特定实例.需要通过使用类名或结构名称或者类或结构的特定实例的变量名称限定共享元素来访问它们.简单的描述就是Shared变量是为类型本身服务而不是为特定对象服务的. Shared举例 Public Class TestA Public Shared i As Int32 = 10 End Class Public

php学习笔记 数组的声明与遍历

数组的声明 1.直接赋值的方式声明数组     $数组变量名[索引值] = 资料内容 //其中索引值(下标)可以是一个字符串或数字 但有的时候,我们也可以直接给数组赋值,并不填写"索引值",那第此时,数组的下标就会自动以数字0开始增加.     $数组变量名[] = 资料内容 //其中索引值(下标)可以是一个字符串或数字  2.使用array()语言结构新建数组 在实际使用中我们可以用array()语言结构来新建一个数组,并初始化数组.     $数组变量名=array( key1 =

VB.Net学习笔记(条件语句)

笔记|条件|语句 条件语句VB.Net中条件语句依然是If Then语句和Selecr Case语句. If Then语句If Then语句比较简单,和原来一样的规则. If条件语句举例 Public Class TestA Public Sub New() Dim b As Boolean = True If b = True Then '处理 Else '处理 End If End Sub End Class Select CaseSelect Case语句用于条件的多个结果的分支判断执行.

VB.Net学习笔记(循环语句)

笔记|循环|语句 循环语句 VB.Net中的循环语句分为:Do While Loop.For Next.For Each三种. Do While LoopDo While Loop有三种形式,这系列的循环是用于预先不知道循环的上限时使用的.在使用Do While Loop语句时要注意,因为它们是不确定循环次数,所以要小心不要造成死循环. Do While Loop举例 Public Class TestA Public Sub New() Dim i As Int32 i = 1 Do Whil

php学习笔记 数组遍历实现代码

复制代码 代码如下: <?php /* 数组的遍历 * * 1.使用for语句循环遍历数组 * 1.其他语言(只有这一种方式) * 2.PHP中这种方式不是首选的方式 * 3.数组必须是索引数组,而且下标必须是连续的. * (索引数组下标可以不连续,数组还有关联数组,这两种不能遍历) * * 2.使用foreach语句循环遍历数组 * foreacho(数组变量 as 变量值){ * //循环体 * } * 1.循环次数由数组的元素个数决定 * 2.每一次循环都会将数组中的元素分别赋值给后面变量

php学习笔记 数组遍历实现代码_php基础

复制代码 代码如下: <?php /* 数组的遍历 * * 1.使用for语句循环遍历数组 * 1.其他语言(只有这一种方式) * 2.PHP中这种方式不是首选的方式 * 3.数组必须是索引数组,而且下标必须是连续的. * (索引数组下标可以不连续,数组还有关联数组,这两种不能遍历) * * 2.使用foreach语句循环遍历数组 * foreacho(数组变量 as 变量值){ * //循环体 * } * 1.循环次数由数组的元素个数决定 * 2.每一次循环都会将数组中的元素分别赋值给后面变量

php学习笔记 数组的常用函数

复制代码 代码如下: <?php /* * 封装性:面向对象三大特性之一 * * 1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节 * 访问权限修饰符 public protected private * private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问) * * 属性可以封装: * 只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用 * * 成员属性,相当于这个对象中的