大家好,我写了如下的代码相输出一个二维数组的内容,但是不知如何获取第二维的长度,请高手指点。
        void outputArray(int[,] array)
        {
            for (int i = 0; i < array.Length; i++)
            {        // 这里不知如何取第二维,下面的写法编译失败
                for (int j = 0; j < ((Array)(array[i])).GetLength(); j++)
                {
                    System.Console.Write("{0} ", array[i, j]);
                }
                System.Console.WriteLine("");            }        }

解决方案 »

  1.   

    object[][]跟object[,]可不是一回事哦~~int[,] array
    用array.GetLength(1)方法取得第二维的长度
      

  2.   

    trystatic void outputArray(int[,] array)
    {
        for (int i = 0; i < array.Rank; i++)
        {
            for (int j = 0; j <= array.GetUpperBound(array.Rank - 1); j++)
            {
                System.Console.Write("{0} ", array[i, j]);
            }
            System.Console.WriteLine();
        }
    }
      

  3.   

    楼上写的程序相当不错:
    array.GetUpperBound(array.Rank-1)+1代表的是这个数组的长度
    其中array.Rank代表的是该数组的总的纬数,该函数的参数从零开始
      

  4.   

    明明已经知道是个2维数组~~直接GetLength方法就行了~~
    2楼的方法明显错误,楼上还在叫好~我狂晕~~~static void outputArray(int[,] array)
    {
        for (int i = 0; i < array.GetLength(0); i++)
        {
            for (int j = 0; j <= array.GetLength(1);j++)
            {
                System.Console.Write("{0} ", array[i, j]);
            }
            System.Console.WriteLine();
        }
    }
      

  5.   

    请教楼上,那样写为什么是错误的,我也是才接触这个,欢迎指出错误,愿意学习
    PS:楼上的代码显然没有经过测试
    for (int j = 0; j <= array.GetLength(1);j++)
    这里多了一个=号
    for (int j = 0; j < array.GetLength(1);j++)
      

  6.   

    呵呵,我是在你的代码基础上修改的~~没留意多一个=你那个就错的明显了
    for (int i = 0; i < array.Rank; i++)array.Rank明显是等于2了,因为是二维数组
      

  7.   

    你那个就错的明显了
    for (int i = 0; i < array.Rank; i++)array.Rank明显是等于2了,因为是二维数组
    ------------------
    这算错误?笑话...老手和新人的差别可见一斑...
      

  8.   

    如果那样写都算正确的话真是千古奇冤了!!!    class Program
        {
            static void Main(string[] args)
            {
                int[,] array = new int[3, 3];
                array[0, 0] = 0;
                array[0, 1] = 1;
                array[0, 2] = 2;
                array[1, 0] = 3;
                array[1, 1] = 4;
                array[1, 2] = 5;
                array[2, 0] = 6;
                array[2, 1] = 7;
                array[2, 2] = 8;
                for (int i = 0; i < array.Rank; i++)
                {
                    for (int j = 0; j <= array.GetUpperBound(array.Rank - 1); j++)
                    {
                        System.Console.WriteLine("{0} ", array[i, j]);
                    }
                    System.Console.WriteLine();
                }
                Console.Read();
            }
        }你看看都输出什么了???
      

  9.   

    本人经验证,i   <=   array.Rank;应该是 <= 就输出正确结果了