数组是许多开发语言的一项基本功能。数组是允许您将几个项目当作单独一个集合来对待,并处理多个数值的机制。.NET Framework支持数组的方式多种多样。在本文中,我将说明应用数组处理多个数值的基本原理。
基本原理
微软.NET支持单维、多维和锯齿数组(数组的数组)。它应用一个指标值对单个数组元素进行访问。所有的数组元素必须为同一类型。可以用以下语法建立一个C#数组。
data_type[] arrayName = new data_type[size];
应用这一语法,下面的代码建立一个能够保存10个整数值的数组。一旦建立,该数组即被移植并显示出来。
int[] testArray = new int[10];
for (int i=0; i < 10; i++) {
testArray[i] = i;
}
for (int j=0; j < 10; j++) {
Console.Write(testArray[j].ToString());
}
如前一个例子所示,C#数组指标基准值从0开始。C#数组中的最后一个元素为数组大小减1。用数组名加上括号中的指标值来引用数组中的单个元素。VB.NET数组的语法也与之类似,以下为上述实例的VB.NET版本。
Dim testarray(9) As Integer
Dim i, j As Integer
For i = 0 To 9
testarray(i) = i
Next i
For j = 0 To 9
Console.WriteLine(CStr(testarray(j)))
Next j
与C#中的括号不同,VB.NET应用圆括号。二者最大的差异在于如何确定数组的大小。C#接受数组项目的实际计数,而VB.NET使用最大的指标值,因此它与数组中的实际值相符(计数从0开始)。
这里我主要讨论单维数组,但您可以方便的建立多维数组。列表A中的C#代码建立一个3行3列的数组,就像圈叉游戏(tic-tac-toe)一样,并以此为例。这是一个二维数组,第一个指标值为行,第二个值为列。列表B中是对应的VB.NET代码。
如上例所示,您可以在数组建立后将其移植,但您也可用值对其进行初始化。要给数组赋值,可将它们放在数组说明后的大括号中。列表C中的C#实例为一年12个月建立了一个字符串值数组。列表D中是对应的VB.NET代码。
列表中的代码对字符串数组进行说明,并赋予它12个值。另外,它使用GetUpperBound数组方法检索数组的大小,并用它遍历并显示数组中的每一个值。下面我们详细了解一下处理数组的其它方法。
方法
在.NET中,所有数组类型都由System.Array类衍生而来。此外,数组通常是分配到托管堆上的引用类型。这意味着数组变量包含数组引用而非数组本身。下表列出了System.Array类的一些属性和方法:
我使用GetUpperBound方法遍历数组中的项目。由于数组可能是多维的,它接受一个表明在哪个元中返回结果的值。您还可以用GetLength返回数组的大小。我可以对前面的例子进行修改,并用它和Rank属性来返回维数。如列表E所示。
只有在维数(rank)为2,才继续执行代码,并用GetLength方法来控制循环次数。列表F中是对应的VB.NET代码。
轻松处理多个数值
数组几乎是每一种开发语言的基本功能。应用它可以轻松处理多个(数据类型相同的)数值。在后面的文章中,我将讨论数组内容排序问题。
Tony Patton拥有丰富的Java、VB、Lotus及XML方面的知识,是一个专业的应用程序开发人员。
责任编辑:张琎