使用 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];
如果问题仍然存在,人们通常会喜欢比“我试过但运气不好”更具描述性的解释。确保告知查看您问题的人这是编译错误或运行时错误,并尽可能具体。
我需要创建一个二维数组,其中列的大小固定为 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];
如果问题仍然存在,人们通常会喜欢比“我试过但运气不好”更具描述性的解释。确保告知查看您问题的人这是编译错误或运行时错误,并尽可能具体。