我写了一个小型项目,它将多个CSV文件读入锯齿状数组(每个csv在1个锯齿状数组中)。 所有的数组将被存储在一个列表中。之后,我有一个给定的维度,我想调整每个数组的大小(给定的列和行)。 代码:C# - 调整参考大小的锯齿状数组的大小
private void resizeArray(double[][] matrixToResize, int maxRow, int maxColumn)
{
Array.Resize(ref matrixToResize, maxRow);
for (int i = 0; i < matrixToResize.Length; i++)
{
Array.Resize(ref matrixToResize[i], maxColumn);
}
}
private void resizeArrayList(List<double[][]> csvList, Dimension dimension)
{
foreach (Double[][] matrix in csvList)
{
resizeArray(matrix, dimension.Max_Rows, dimension.Max_Columns);
}
}
resizeArrayList
将被称为1,然后这将调用resizeArray
来调整行,之后调整为每行给定的列量。
我的问题: 在resizeArray
这一切运作良好,例如: 我有5行5列的一个阵列,并希望10行10列,
我第一尺寸此阵10行之后,每行至10列。之前resizeArray
返回到resizeArrayList
它看起来很好,我有10行,每10列。但是在代码回到方法resizeArrayList
之后,它有5行,每列有10(!)列。所以基本上调整大小的工作正常,但添加的5行不见了,它回到它原来的行大小。
我知道我可以解决这个问题,把整个交错的数组传回来,然后读这个列表。但为什么会这样呢?
这两次我都使用resize函数与ref。但它只是保存列而不是调整大小的行。
啊,这是有道理的!非常感谢你清理这个,我很困惑!谢谢!祝你今天愉快 – christian890