C# 使用C在运行时初始化2D数组的大小#
我需要创建一个二维数组,其中列的大小固定为6,但行的大小可能会有所不同。如何在二维数组中指定动态行大小? 下面是我尝试过的代码,但没有运气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<
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
将比大多数其他解决方案涉及更多的开销。没错,这只是我对这个非同寻常的请求想到的第一件事。