C# 二维矩阵索引越界

C# 二维矩阵索引越界,c#,arrays,matrix,2d,C#,Arrays,Matrix,2d,我正在尝试创建一个二维矩阵,它将在表中显示和排序 我在用数字填充矩阵/数组时遇到问题。我不想在那里重复,因此创建了一个临时的列表 我尝试了不同的方法来修复在列表中添加num时出现的索引越界异常,但我不知道发生了什么 我最初将所有变量设置为static,方法中不需要这些变量。然后我试着把它们放在方法中,看看如果变量不是静态的,会发生什么 我将如何着手修复此错误?(全部在控制台应用程序中完成) static int max; 静态int max_行; 静态int max_col; //静态整数[,]

我正在尝试创建一个二维矩阵,它将在表中显示和排序

我在用数字填充矩阵/数组时遇到问题。我不想在那里重复,因此创建了一个临时的
列表

我尝试了不同的方法来修复在列表中添加
num
时出现的索引越界异常,但我不知道发生了什么

我最初将所有变量设置为
static
,方法中不需要这些变量。然后我试着把它们放在方法中,看看如果变量不是
静态的
,会发生什么

我将如何着手修复此错误?(全部在控制台应用程序中完成)

static int max;
静态int max_行;
静态int max_col;
//静态整数[,]矩阵数组=新整数[最大行,最大列];
//静态列表=新列表();
//填充矩阵
公共静态无效矩阵填充(int[,]矩阵阵列,列表)
{
对于(int x=0;x
问题在于,您需要在设置max_行和max_列参数之前定义矩阵阵列的大小

    List<int> list = new List<int>();

    Console.Write("Please enter matrix size: ");

    Int32.TryParse(Console.ReadLine(), out max);

    max_row = max;
    max_col = max;
    int[,] matrixArray = new int[max_row, max_col]; // move this here
List List=新列表();
控制台。写入(“请输入矩阵大小:”);
Int32.TryParse(Console.ReadLine(),out max);
最大值=最大值;
max_col=max;
int[,]矩阵数组=新的int[max_行,max_列];//把这个搬过来

相反,请将该定义移动到您向用户请求最大大小之后,如上所述,以便您创建的矩阵的大小与您期望的大小相同。

Us getupperbound,其中包含loopsThanks的数组索引!难以置信,我尝试了这么多不同的东西,却错过了这么重要的细节。谢谢你的帮助!
    List<int> list = new List<int>();

    Console.Write("Please enter matrix size: ");

    Int32.TryParse(Console.ReadLine(), out max);

    max_row = max;
    max_col = max;
    int[,] matrixArray = new int[max_row, max_col]; // move this here