C#中,什么是数组的秩(Rank)

每个数组都有一个秩:这是数组中的维数。 一维数组的秩为 1。我们可以从 Array 基类访问 Rank 属性。

using System;

class Program
{
    static void Main()
    {
        //一维数组
        int[] one = new int[2];
        one[0] = 1;
        one[1] = 2;
        Handle(one);

        //二维数组
        int[,] two = new int[2, 2];
        two[0, 0] = 0;
        two[1, 0] = 1;
        two[0, 1] = 2;
        two[1, 1] = 3;
        Handle(two);
    }

	//我们定义了一个接收数组引用的方法(Handle)。 然后它测试参数数组的rank。
	//此方法使用 GetValue 来访问数组元素。
	//对于1维数组和2维数组都是一样的。
	
    static void Handle(Array array)
    {
        Console.WriteLine("Rank: " + array.Rank);
        switch (array.Rank)
        {
            case 1:
                for (int i = 0; i < array.Length; i++)
                {
                    Console.WriteLine(array.GetValue(i));
                }
                break;
            case 2:
                for (int i = 0; i < array.GetLength(0); i++)
                {
                    for (int x = 0; x < array.GetLength(1); x++)
                    {
                        Console.Write(array.GetValue(i, x));
                    }
                    Console.WriteLine();
                }
                break;
        }
    }
}

输出

Rank: 1
1
2
Rank: 2
02
13
日期:2020-06-02 22:14:14 来源:oir作者:oir