访问多维数组会引发越界异常
本文关键字:越界 异常 数组 访问 | 更新日期: 2023-09-27 18:35:38
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
。
我哪里做错了,有没有更好的方法来实现它?
您已经定义了大小为 [2,2]
的数组,您可以在其中添加 4 个值。但是您添加了 9 个值,因此请将Array
声明行更改为:
string [,] array1 = new string[3, 3];
当您定义一个[2,2]
数组时,这意味着大小为 2x2,这意味着仅表示索引 (0,1),而不是 2。
即
array1[2,0] = "Nithya";
你是第一个例外吗
声明大小3,3
数组,其索引将0,1,2
您需要的。
string[,] array1 = new string[3, 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];