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

C# 使用C在运行时初始化2D数组的大小#,c#,arrays,allocation,C#,Arrays,Allocation,我需要创建一个二维数组,其中列的大小固定为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<

我需要创建一个二维数组,其中列的大小固定为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[1][2] = 34;

我也会用字典

Dictionary<int,List<int>> numbers = new Dictionary<int,List<int>>();
以及访问特定行和列中的数字

numbers[1][2] = 34;

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

int n = 9;
int[,] ar = new int[n,6];
我猜您的输入没有正确通过,所以请添加一些错误检查以找出哪里出了问题。首先,
Console.ReadLine()
必须大写,否则无法编译。接下来,确保
TryParse
实际运行正常(它返回一个
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];

如果问题持续存在,人们通常喜欢更多的描述性解释,而不是“我尝试过,但没有运气。”确保告知查看您的问题的人这是一个编译错误或运行时错误,并尽可能具体。

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

int n = 9;
int[,] ar = new int[n,6];
我猜您的输入没有正确通过,所以添加一些错误检查以找出错误。首先,
Console.ReadLine()
必须大写,否则无法编译。接下来,确保
TryParse
实际运行正常(它返回一个
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];

如果问题持续存在,人们通常喜欢更多的描述性解释,而不是“我尝试过,但没有运气。”请确保告知查看您的问题的人这是一个编译错误或运行时错误,并尽可能具体。

您的代码有什么问题?您有一个拼写错误:
Console
应该大写。您所说的“不走运”是什么意思?代码编译了吗?在更改
控制台
的大小写后,我成功地运行了它。您的代码有什么问题?您有一个输入错误:
控制台
应该大写。您所说的“不走运”是什么意思?代码编译了吗?在更改了
控制台的大小写后,我成功地运行了它。集合类很棒,但是
字典
比大多数其他解决方案都需要更多的开销。没错,这只是我对这个相当不寻常的请求想到的第一件事。集合类很棒,但是
Dictionary
将比大多数其他解决方案涉及更多的开销。没错,这只是我对这个非同寻常的请求想到的第一件事。