在 C# 中调整矩阵大小

Resize matrix in c#

我正在尝试遵循 How to resize multidimensional (2D) array in C#?

的建议

但是,他们没有解释调用他们在那里解释的解决方案的语法。

假设我有这个功能,

void ResizeArray<T>(ref T[,] original, int newCoNum, int newRoNum)
        {
            var newArray = new T[newCoNum, newRoNum];
            int columnCount = original.GetLength(1);
            int columnCount2 = newRoNum;
            int columns = original.GetUpperBound(0);
            for (int co = 0; co <= columns; co++)
                Array.Copy(original, co * columnCount, newArray, co * columnCount2, columnCount);
            original = newArray;
        }

我想更改双精度数组的大小 [] myMatrix,

那个函数怎么调用,我一直在尝试,

ResizeArray(myMatrix, 3,3) 

但我总是出错,我不明白。

错误说:

Error CS0411: The type arguments for method 'Program.ResizeArray(ref T[,], int, int)' cannot be inferred from the usage. Try specifying the type arguments explicitly. (CS0411)

如果我 google 这个错误,我不会得到这个特定问题的任何答案。因此,我需要问你。这就是我能提供的所有信息,真的没有别的了。我有一个 2x2 矩阵,我需要将它的大小调整为 nxn,并改变 n。我找到的解决方案是我粘贴的那个,我得到的错误也被粘贴了。

希望有人能提供帮助。 此致

您必须指定 T 是什么。假设 myMatrix 包含 double 类型的元素,您需要

ResizeArray<double>(myMatrix, 3, 3)