我有一个返回以下类型和对象的方法:
object {object[,]}
test {object[19, 2]}
是否可以将其转换为2d字符串数组或数据表?
答案 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();
}
}
如果您的第二个维度始终相同,您可以省略内部循环,将其替换为静态代码。
答案 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();