System.IndexOutOfRangeExecption ERROR - C#

本文关键字:ERROR IndexOutOfRangeExecption System | 更新日期: 2023-09-27 18:25:25

我刚刚尝试用数组和简单的写行运行一些代码,但我得到了"System.IndexOutOfRangeExection"的ERROR和更多的胡言乱语行。

代码(简单):

static void Main(string[] args)
    {
      // מטרת התכנית היא למצוא את שמו של התלמיד על פי מקום הישיבה שלו, וההפך
        // נשתמש במערך בשם Places.
        string[,] places =  new string [3,3];
        places[0, 0] = "Me & Dori";
        places[0, 1] = "Me & Dori";
        places[0, 2] = "Me & Dori";
        places[0, 3] = "Me & Dori";
        places[1, 0] = "Me & Dori";
        places[1, 1] = "Me & Dori";
        places[1, 2] = "Me & Dori";
        places[1, 3] = "Me & Dori";
        places[2, 0] = "Me & Dori";
        places[2, 1] = "Me & Dori";
        places[2, 2] = "Me & Dori";
        places[2, 3] = "Me & Dori";
        places[3, 0] = "Me & Dori";
        places[3, 1] = "Me & Dori";
        places[3, 2] = "Me & Dori";
        places[3, 3] = "Me & Dori";
        Console.WriteLine(places[1, 3]);
    }

*我对C#不太了解,还在学习。。。所以我想这是我忘了写的东西。

System.IndexOutOfRangeExecption ERROR - C#

数组的大小是3x3,由于数组是基于c#的,所以数组以2,2结束。

你必须将你的数组设置为4x4才能让你的代码工作:

string[,] places =  new string [4,4];

或者您应该删除设置上限的代码。

如果您在C#中声明一个数组,如下所示:

string[,] places =  new string [3,3];

这个数组中有9个元素,索引从0,0开始,最后一个是2,2

当你试图在2,3处寻址元素时,它会抛出Exception

places[2, 3] = "Me & Dori";
new String[3,3]

3表示尺寸的数量。数组是基于0的。所以你创造了三个维度。0、1和2。您尝试将值设置为第四个维度。

places[3, 0] = "Me & Dori";
places[3, 1] = "Me & Dori";
places[3, 2] = "Me & Dori";
places[3, 3] = "Me & Dori";

这不起作用,因为没有第四维度。所以删除这些行或使用:

string[,] places =  new string [4,4];

数组的最大索引为places[2, 2]。您需要string[,] places = new string[4,4];才能使用

places[0, 3] = "Me & Dori";
places[1, 3] = "Me & Dori";
places[2, 3] = "Me & Dori";
places[3, 0] = "Me & Dori";
places[3, 1] = "Me & Dori";
places[3, 2] = "Me & Dori";
places[3, 3] = "Me & Dori";

您正在声明一个3x3数组,但试图将4x4数据分配给它

string[,] places =  new string [4,4];