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

时间:2016-03-16 18:35:49

标签: c# arrays allocation

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

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

2 个答案:

答案 0 :(得分:0)

我会像这样使用字典。

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;

答案 1 :(得分:0)

你构建多元数组的方式没有错。以下代码有效,因此我怀疑您的错误位于其他地方:

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];

如果问题仍然存在,人们通常会比“我尝试但没有运气”更倾向于使用更具描述性的解释。确保通知人们查看您的问题,这是一个编译错误或运行时错误,并尽可能具体。