转换多维数组交错数组在C# [英] Convert multidimensional array to jagged array in C#

查看:164
本文介绍了转换多维数组交错数组在C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个C#WCF web服务是由两个VB 6项目调用。目标VB项目发送给客户端VB工程多维数组。

I have a C# WCF webservice which is called by two VB 6 project. The target VB project is sending to the client VB project a multidimensional array.

我想多维数组转换成锯齿形数组,但我有没有运气。

I want to convert the multidimensional array to a jagged array but i have no luck.

我怎样才能找到我的对象[,]要能够初始化交错数组?

How can i find the number of olements in my object[,] to be able to initialize the jagged array ?

我要遵循这个问题答案但我没有我的对象上的对GetLength

I want to follow the answer from this question but i don't have a GetLength method on my object.

我试过:

int firstElement = astrManTfrLetters.GetLength(0);
int secondElement = astrManTfrLetters.GetLength(1);

和我坚持在这里。

推荐答案

通常提出的解决方案,假设基于0的指数,但是这并不总是如此,主要是在客户端上你正在处理对象[,]的为Microsoft Excel。这里的任何指数的解决方案。

Usually the solutions presented assume 0-based indices but that's not always the case, mainly if on the client you are dealing with object[,]'s for Microsoft Excel. Here's a solution for any indices.

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;
    }
}

这篇关于转换多维数组交错数组在C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆