使用 C# 在运行时初始化二维数组的大小

Initializing size of 2D array in runtime using C#

我需要创建一个二维数组,其中列的大小固定为 6,但行的大小可能会有所不同。如何在二维数组中给出动态行大小? 下面是我试过但没有成功的代码。

int n;
string num = console.ReadLine();
Int32.TryParse(num,out n);
int[,] ar = new int[n,6] ;

我会这样使用字典。

Dictionary<int,List<int>> numbers = new Dictionary<int,List<int>>();

您可以像这样添加一个项目:

numbers.Add(1,new List<int>(){1,2,3,4,5,6});

并将数字添加到特定行。

numbers[1].Add(7);

并访问特定行和列中的数字。

numbers[1][2] = 34;

您构建多维数组的方式没有任何问题。以下代码有效,因此我怀疑您的错误出在其他地方:

int n = 9;
int[,] ar = new int[n,6];

我猜你的输入没有正确通过,所以添加一些错误检查来找出问题所在。首先,Console.ReadLine() 必须大写,否则无法编译。接下来,确保 TryParse 确实正常运行(它 returns 一个 bool 表示成功或失败:

int n;
string num = Console.ReadLine();
if (num == null) {
    // ERROR, No lines available to read.
}
if (!Int32.TryParse(num,out n)) {
    // ERROR, Could not parse num.
}
int[,] ar = new int[n,6];

如果问题仍然存在,人们通常会喜欢比“我试过但运气不好”更具描述性的解释。确保告知查看您问题的人这是编译错误或运行时错误,并尽可能具体。