我寫了一個小型項目,它將多個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