我需要创建2D锯齿状数组。想想一个矩阵。行数是已知的,列数是未知的。例如,我需要创建10个元素的数组,其中每个元素的类型为string []。我为什么需要那个?列数是未知的 - 此函数必须简单地执行分配并将数组传递给其他函数。
string[][] CreateMatrix(int numRows)
{
// this function must create string[][] where numRows is the first dimension.
}
更新
我有C ++背景。在C ++中,我会编写以下内容(从不修改语法)
double ** CreateArray()
{
double **pArray = new *double[10]() // create 10 rows first
}
更新2
我正在考虑使用List,但我需要对行和列进行索引访问。
答案 0 :(得分:8)
return new string[numRows][];
答案 1 :(得分:5)
无法完成。但是你可以这样做:
List<List<string>> createMatrix(int numRows)
{
return new List<List<string>>(numRows);
}
这使你能够在第二个角度拥有灵活数量的物体。
答案 2 :(得分:2)
你可以写:
string[][] matrix = new string[numRows][];
这将产生null
元素的2D数组。如果要使用非空项填充数组,则需要编写:
for (int row = 0; row < numRows; row++)
{
matrix[row] = new string[/* col count for this row */];
}
您需要指定矩阵每行的列数。如果您事先不知道,可以。
List<>
。希望这有帮助。