int[][] DayNumbers = new int[][] { };
                        for (int Number = 1; Number < MonthDays; Number++)
                        {
                            for (int i = 0; i < 6; i++)
                                for (int j = 0; j < 7; j++)
                                {
                                    DayNumbers[i][j] = Number;//IndexOutOfRangException索引超出了数组界限。
                                }
                            DayNumbers[0][0] = 0;
                            DayNumbers[0][1] = 0;
                            DayNumbers[0][2] = 0;
                        }
                        return DayNumbers;

解决方案 »

  1.   

    int[][] DayNumbers = new int[][] { };你的数组是0维0列的啊,所以赋值出错啊。
      

  2.   

    int[][] DayNumbers = new int[][] { };数组定义不对吧!!长度为0
      

  3.   


    我要是写成:int[][] DayNumbers = new int[6][7];//还没编译,IDE就提示:无效的秩说明符: 应为“,”或“]”int[][] DayNumbers = new int[][7];//还没编译,IDE就提示:无效的秩说明符: 应为“,”或“]”就只有int[][] DayNumbers = new int[][] { };编译通过。运行时出//IndexOutOfRangException索引超出了数组界限。的错
      

  4.   

    首先你这个不是二维数组,而是锯齿形数组,其次,你没有为数组初始化,参考:                        int[][] DayNumbers = new int[6][] { };
                            for (int Number = 1; Number < MonthDays; Number++)
                            {
                                for (int i = 0; i < 6; i++)
                                {
                                    DayNumbers[i] = new int[7];
                                    for (int j = 0; j < 7; j++)
                                    {
                                        DayNumbers[i][j] = Number;
                                    }
                                }
                            }
                            return DayNumbers;
      

  5.   


    int[][] DayNumbers = new int[6][];
                            for (int Number = 1; Number < MonthDays; Number++)
                            {
                                for (int i = 0; i < 6; i++)
                                    for (int j = 0; j < 7; j++)
                                    {
                                        DayNumbers[i][j] = Number;//IndexOutOfRangException索引超出了数组界限。
                                    }
                                DayNumbers[0][0] = 0;
                                DayNumbers[0][1] = 0;
                                DayNumbers[0][2] = 0;
                            }
                            return DayNumbers;
      

  6.   


    int[,] DayNumbers = new int[6,7]; //这个才是多维数组
                            for (int Number = 1; Number < MonthDays; Number++)
                            {
                                for (int i = 0; i < 6; i++)
                                    for (int j = 0; j < 7; j++)
                                    {
                                        DayNumbers[i,j] = Number;//注意写法[i,j]
                                    }
                                DayNumbers[0,0] = 0;
                                DayNumbers[0,1] = 0;
                                DayNumbers[0,2] = 0;
                            }
                            return DayNumbers;
      

  7.   

    http://www.mapgou.cn/blogs/dotnet/93.html二维数组与非整齐数组要分清楚哦
      

  8.   


    //..........
    int[,] = new int[6,7];
    i[0,0] = 0;
    i[0,1] = 1;
    i[1,0] = 2;
    i[1,1] = 3;
    //...........
      

  9.   

    up,LZ基础知识不扎实。C#中多为数组定义的格式和C/C++稍微有点儿差别。
      

  10.   

    锯齿数组的第一维必须在申请时指定,int[][] DayNumbers=new int[6][] { };
    然后第二维可以在使用时再指定。
    另外如果数组存放统一类型的数据,多维数组可以这样定义 int[,] arr = new int[,];