在.NET中用数组处理多个数值

ZDNet软件频道 时间:2006-10-24 作者:Builder.com.cn |  我要评论()
本文关键词:.Net .net dotnettrend 数组 .NET
.NET Framework支持数组的方式多种多样。在本文中,我将说明应用数组处理多个数值的基本原理。

数组是许多开发语言的一项基本功能。数组是允许您将几个项目当作单独一个集合来对待,并处理多个数值的机制。.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类的一些属性和方法:

  • Length:返回一个32位整数,表示所有数组元中的元素总数。
  • Rank:返回数组的维数。
  • BinarySearch:使用二进制搜索算法在一个单维排序数组中搜索一个值。
  • Clear:允许您清除整个数组的某个部分。
  • ConvertAll:把一种类型的数组转换成另一种类型的数组
  • Copy:将一个数组中的一组元素复制到另一个数组中,并按要求执行类型映射与装箱转换。
  • CopyTo:把当前单维数组中的所有元素复制到指定的单维数组中。
  • Exists:确定指定数组中是否包含与特定断言条件相匹配的元素。
  • Find:搜索一个与特定断言条件相匹配的元素,并返回这个元素在整个数组中第一次出现的位置。
  • ForEach:对指定数组的每一个元素执行特定的行为。
  • GetLength:返回数组指定元的长度。
  • GetLowerBound:返回数组指定元的下限。
  • GetUpperBound:返回数组指定元的上限。
  • GerValue:返回数组指定元素的值。
  • IndexOf:返回某个值在一个单维数组数组的某个部分第一次出现的指标。
  • LastIndexOf:返回某个值在一个单维数组数组的某个部分最后一次出现的指标。
  • Resize:颠倒一个单维数组数组的某个部分中所有元素的顺序。
  • Sort:对一个单维数组对象的元素进行排序。

我使用GetUpperBound方法遍历数组中的项目。由于数组可能是多维的,它接受一个表明在哪个元中返回结果的值。您还可以用GetLength返回数组的大小。我可以对前面的例子进行修改,并用它和Rank属性来返回维数。如列表E所示。

只有在维数(rank)为2,才继续执行代码,并用GetLength方法来控制循环次数。列表F中是对应的VB.NET代码。

轻松处理多个数值

数组几乎是每一种开发语言的基本功能。应用它可以轻松处理多个(数据类型相同的)数值。在后面的文章中,我将讨论数组内容排序问题。

Tony Patton拥有丰富的Java、VB、Lotus及XML方面的知识,是一个专业的应用程序开发人员。

责任编辑:张琎

查看本文的国际来源

 

.Net

.net

dotnettrend

数组

.NET


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134