c# Rank属性与GetUpperBound方法的深入分析
c# Rank属性与GetUpperBound方法的深入分析
发布时间:2016-12-28 来源:查字典编辑
摘要:Array的Rank属性:语法:publicintRank{get;}得到Array的秩(维数)。Array而GetUpperBound方法...

Array的Rank 属性:

语法:public int Rank { get; } 得到Array的秩(维数)。

Array而GetUpperBound 方法:

语法:public int GetUpperBound(int dimension) 用于获取 Array 的指定维度的上限。

--------------------------------------------------------------------------------

示例:

复制代码 代码如下:

using System;

public class SamplesArray {

public static void Main() {

// Creates a new one-dimensional Array of type Int32.

Array my1DIntArray = Array.CreateInstance( typeof(Int32), 5 );

// Uses GetLowerBound and GetUpperBound in the for loop.

for ( int i = my1DIntArray.GetLowerBound(0); i <= my1DIntArray.GetUpperBound(0); i++ )

my1DIntArray.SetValue( i+1, i );

// Displays the bounds and values of the one-dimensional Array.

Console.WriteLine( "One-dimensional Array:" );

Console.WriteLine( "Rank/tLower/tUpper" );

Console.WriteLine( "{0}/t{1}/t{2}", 0, my1DIntArray.GetLowerBound(0), my1DIntArray.GetUpperBound(0) );

Console.WriteLine( "Values:" );

PrintValues( my1DIntArray );

Console.WriteLine();

// Creates a new three-dimensional Array of type Int32.

Array my3DIntArray = Array.CreateInstance( typeof(Int32), 2, 3, 4 );

// Uses GetLowerBound and GetUpperBound in the for loop.

for ( int i = my3DIntArray.GetLowerBound(0); i <= my3DIntArray.GetUpperBound(0); i++ )

for ( int j = my3DIntArray.GetLowerBound(1); j <= my3DIntArray.GetUpperBound(1); j++ )

for ( int k = my3DIntArray.GetLowerBound(2); k <= my3DIntArray.GetUpperBound(2); k++ ) {

my3DIntArray.SetValue( (i*100)+(j*10)+k, i, j, k );

}

// Displays the bounds and values of the multidimensional Array.

Console.WriteLine( "Multidimensional Array:" );

Console.WriteLine( "Rank/tLower/tUpper" );

for ( int i = 0; i < my3DIntArray.Rank; i++ )

Console.WriteLine( "{0}/t{1}/t{2}", i, my3DIntArray.GetLowerBound(i), my3DIntArray.GetUpperBound(i) );

Console.WriteLine( "Values:" );

PrintValues( my3DIntArray );

}

public static void PrintValues( Array myArr ) {

System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();

int i = 0;

int cols = myArr.GetLength( myArr.Rank - 1 );

while ( myEnumerator.MoveNext() ) {

if ( i < cols ) {

i++;

} else {

Console.WriteLine();

i = 1;

}

Console.Write( "/t{0}", myEnumerator.Current );

}

Console.WriteLine();

}

}

/*

This code produces the following output.

One-dimensional Array:

Rank Lower Upper

0 0 4

Values:

1 2 3 4 5

Multidimensional Array:

Rank Lower Upper

0 0 1

1 0 2

2 0 3

Values:

0 1 2 3

10 11 12 13

20 21 22 23

100 101 102 103

110 111 112 113

120 121 122 123

*/

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类