在C#中将多维数组转换为锯齿状数组

seb*_*ibu 8 c# jagged-arrays multidimensional-array

我有一个C#WCF webservice,由两个VB 6项目调用.目标VB项目正在向客户端VB项目发送一个多维数组.

我想将多维数组转换为锯齿状数组,但我没有运气.

如何才能找到我的对象[,]中的油脂数量,以便能够初始化锯齿状阵列?

我想按照这个问题的答案,但我的GetLength方法没有方法.

我试过了 :

int firstElement = astrManTfrLetters.GetLength(0);
int secondElement = astrManTfrLetters.GetLength(1);
Run Code Online (Sandbox Code Playgroud)

我卡在这里.

小智 13

通常所提出的解决方案假定基于0的索引,但情况并非总是如此,主要是在客户端处理对象[,]用于Microsoft Excel.这是任何指数的解决方案.

internal static class ExtensionMethods
{
    internal static T[][] ToJaggedArray<T>(this T[,] twoDimensionalArray)
    {
        int rowsFirstIndex = twoDimensionalArray.GetLowerBound(0);
        int rowsLastIndex = twoDimensionalArray.GetUpperBound(0);
        int numberOfRows = rowsLastIndex + 1;

        int columnsFirstIndex = twoDimensionalArray.GetLowerBound(1);
        int columnsLastIndex = twoDimensionalArray.GetUpperBound(1);
        int numberOfColumns = columnsLastIndex + 1;

        T[][] jaggedArray = new T[numberOfRows][];
        for (int i = rowsFirstIndex; i <= rowsLastIndex; i++)
        {
            jaggedArray[i] = new T[numberOfColumns];

            for (int j = columnsFirstIndex; j <= columnsLastIndex; j++)
            {
                jaggedArray[i][j] = twoDimensionalArray[i, j];
            }
        }
        return jaggedArray;
    }
}
Run Code Online (Sandbox Code Playgroud)