日期:2014-05-17  浏览次数:20776 次

新手求教。
初学C#的数组篇,有代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
          //自定义一个二维数组
            int[,] arr = new int[3, 5] {{1,2,3,4,8},{5,6,7,8,8},{9,0,1,2,8}};  
              Console.Write("数组的行数为:");
            Console.Write(arr.Rank);                        //获取二维数组的行数
              Console.Write("\n");
            Console.Write("数组的列数为:");
            Console.Write(arr.GetUpperBound(arr.Rank - 1) + 1);//获取二维数组的列数
              Console.Write("\n");
            for (int i = 0; i <= arr.Rank; i++)
            {
                string str = "";
                for (int j = 0; j < arr.GetUpperBound(arr.Rank - 1) + 1; j++)
                {
                    str = str + Convert.ToString(arr[i, j]) + " ";
                }
                Console.Write(str);
                Console.Write("\n");
                
            }
            Console.ReadLine();

        }
    }
}
运行结果是:

数组的行数为:2
数组的列数为:5
1 2 3 4 8
5 6 7 8 8
9 0 1 2 8

在此请教:
如此定义数组:
int[,] arr = new int[3, 5] {{1,2,3,4,8},{5,6,7,8,8},{9,0,1,2,8}};  
运行结果的数组行数是2,为什么不是3呢?


------解决方案--------------------
Array.Rank属性不是行数,而是数组的维数,比如new int[3, 5] 生成的数组是二维数组,Rank就是2,new int[6, 5,3]生成的数组维数是3,那么Rank就是3,

所以arr.Rank显然是2,因为这个数组是二维数组,