-3

我刚刚尝试使用数组和简单的 writeline 运行一些代码,但出现“System.IndexOutOfRangeExecption”错误和更多乱码行。

代码(简单):

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#,还在学习中……所以我猜它是我忘记写的东西。

4

5 回答 5

2

你的数组的大小是 3x3,因为数组是 c# 是从 0 开始的,所以你的数组以 2,2 结尾。

您必须将数组设置为 4x4 才能使代码正常工作:

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

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

于 2014-10-01T17:48:15.603 回答
1
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];
于 2014-10-01T17:48:33.197 回答
1

如果您像这样在 C# 中声明一个数组:

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

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

当您尝试在 2,3 处处理元素时,它会抛出Exception

places[2, 3] = "Me & Dori";
于 2014-10-01T17:49:24.097 回答
0

数组的最大索引是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";
于 2014-10-01T17:48:24.253 回答
0

您正在声明一个 3x3 数组,但尝试为其分配 4x4 数据。要将您的示例更改为:

string[,] places =  new string [4,4];
于 2014-10-01T17:49:20.507 回答