将包含2D对象数组的对象转换为字符串数组

时间:2018-06-12 10:13:32

标签: c#

我有一个返回以下类型和对象的方法:

object {object[,]}
test    {object[19, 2]} 

是否可以将其转换为2d字符串数组或数据表?

2 个答案:

答案 0 :(得分:0)

看起来很尴尬,但我还没有找到另一种方式。

int firstDimensionSize = 19;
int secondDimensionSize = 2;

object[,] objectArray = new object[firstDimensionSize, secondDimensionSize];

string[,] stringArray = new string[objectArray.Length / secondDimensionSize, secondDimensionSize];

for (int i = 0; i < objectArray.Length / secondDimensionSize; i++)
{
    for (int j = 0; j < secondDimensionSize; j++)
    {
        stringArray[i, j] = objectArray[i, j].ToString();
    }
}

如果您的第二个维度始终相同,您可以省略内部循环,将其替换为静态代码。

另见https://www.dotnetperls.com/2d

答案 1 :(得分:0)

我做了这个扩展方法,但如果你不经常需要它,你也可以把它作为一种常规方法。

public static class Extensions
{
    public static string[,] ConvertToString2D(this object[,] arr)
    {
        int dim1 = arr.GetLength(0);
        int dim2 = arr.GetLength(1);
        string[,] strArray = new string[dim1, dim2];

        for (int i = 0; i < dim1; i++)
        {
            for (int j = 0; j < dim2; j++)
            {
                strArray[i, j] = Convert.ToString(arr[i, j]);
            }
        }

        return strArray;
    }
}

然后你可以这样称呼它:

var result = objArr.ConvertToString2D();