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
。
我哪里出错,有没有更好的方法来实现它?
答案 0 :(得分:1)
您已定义大小为[2,2]
的数组,您可以在其中添加4个值。但是您添加了9个值,因此请将Array
声明行更改为:
string [,] array1 = new string[3, 3];
答案 1 :(得分:0)
定义[2,2]
数组时,表示大小为2x2,表示仅为索引(0,1),而不是2。
即
array1[2,0] = "Nithya";
是你的第一个例外
答案 2 :(得分:0)
声明您的索引为3,3
的大小为0,1,2
的数组。
string[,] array1 = new string[3, 3];
始终记住索引为零,即它们从0开始。
答案 3 :(得分: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];