C# 尝试填充二维数组时System.IndexOutOfRangeException

C# 尝试填充二维数组时System.IndexOutOfRangeException,c#,arrays,C#,Arrays,有人能告诉我为什么我从这个代码中收到一个System.indexootfrangeexception char[,] matrix = new char[80, 18]; for (int i = 0; i < 80; i++) for (int j = 0; i < 18; j++) matrix[i, j] = '1'; char[,]矩阵=新字符[80,18]; 对于(int i=0;i

有人能告诉我为什么我从这个代码中收到一个
System.indexootfrangeexception

char[,] matrix = new char[80, 18];
for (int i = 0; i < 80; i++)
    for (int j = 0; i < 18; j++)
        matrix[i, j] = '1';
char[,]矩阵=新字符[80,18];
对于(int i=0;i<80;i++)
对于(int j=0;i<18;j++)
矩阵[i,j]=‘1’;

您正在检查第二个for循环中的i是否小于18

char[,] matrix = new char[80, 18];
for (int i = 0; i < 80; i++)
    for (int j = 0; i < 18; j++) //<-- Right there.
        matrix[i, j] = '1';
char[,]矩阵=新字符[80,18];
对于(int i=0;i<80;i++)

对于(int j=0;i<18;j++)/问题:在第二个for循环中,您使用变量
i
而不是
j

for (int i = 0; i < 80; i++)
for (int j = 0; i < 18; j++)
               ^^^ should be j
for(int i=0;i<80;i++)
对于(int j=0;i<18;j++)
^^^应该是j
试试这个:

for (int i = 0; i < 80; i++)
for (int j = 0; j < 18; j++)
for(int i=0;i<80;i++)
对于(int j=0;j<18;j++)

…因为您的输入有误
for(int j=0;i<18;j++)

如果复制并粘贴for循环而不正确更改所有变量,则会发生这种情况。您错过了第二个循环中的
i
。也应该把它改成
j
,这不是为什么我们总是说:先使用调试器,然后复制:OMG,太尴尬了!很抱歉
for (int i = 0; i < 80; i++)
for (int j = 0; j < 18; j++)