-4
using System;
using System.Collections;
class MDArrayDemo
{
  public static void Main()
  {
      string [,] array1 = new string[2, 2];
      array1[0,0] = "Subhadra";
      array1[0,1] = "Leon";
      array1[0,2] = "Maria";
      array1[1,0] = "Shawn";
      array1[1,1] = "Chantel";
      array1[1,2] = "Cheryl";
      array1[2,0] = "Nithya";
      array1[2,1] = "Suresh";
      array1[2,2] = "Kittu";
      Console.WriteLine("My Family {0}\n, {1}\n, {2}",array1 [0,0],array1 [0,1],array1 [0,2]);
      Console.WriteLine("Pseudos {0}\n, {1}\n, {2}",array1 [1,0],array1 [1,1],array1 [1,2]);
      Console.WriteLine("Vile {0}\n, {1}\n, {2}",array1 [2,0],array1 [2,1],array1 [2,2]);
     }
   }

此代码抛出一个Array out of bounds-Exception.

我哪里出错了,有没有更好的方法来实现它?

4

4 回答 4

1

您已经定义了具有大小的数组[2,2],您可以在其中添加 4 个值。但是您添加了 9 个值,因此将您的Array声明行更改为:

string [,] array1 = new string[3, 3];
于 2013-10-16T06:50:20.510 回答
0

[2,2]当您定义一个表示大小为 2x2的数组时,仅表示索引 (0,1),而不是 2。

IE

  array1[2,0] = "Nithya";

你是第一个例外吗

于 2013-10-16T06:34:57.980 回答
0

声明您的大小数组,3,3其索引将是0,1,2您需要的。

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

永远记住索引是从零开始的,即它们从 0 开始。

于 2013-10-16T06:35:18.143 回答
0

通过代码定义数组

string [,] array1 = new string[2, 2];

表示您正在创建一个数组,其每个维度中的两个元素的大小

数组索引为零:具有 n 个元素的数组索引从 0 到 n-1。

资料来源:MSDN

string [,] array1 = new string[n, n];

x     y
0  ,  0
...
...
n-1, n-1

这意味着您从零开始计算元素(在您的代码中 n = 2):

x y
0,0
0,1
1,0
1,1

如果您想在每个维度中创建 3 个元素,这应该是您的代码:

string [,] array1 = new string[3, 3];
于 2013-10-16T06:39:52.930 回答