c# - 将对象转换为多维字符串数组

标签 c# arrays .net

我已经看到如何使用下面的代码将对象转换为字符串数组,

string[] arr = ((IEnumerable)paraArray).Cast<object>()
                             .Select(x => x.ToString())
                             .ToArray();

但我的问题是,如果 paraArray 是一个对象(但数据是一个多维数组),我如何将它转换为多维字符串数组?

最佳答案

您无法通过 ToArray 实现此目的。最好的,恕我直言,你能做的是

  object[,] paraArray = new object[,] {
    {1, 2, 3 },
    {4, 5, 6 },
  };

  ...

  string[,] arr = new string[paraArray.GetLength(0), paraArray.GetLength(1)];

  for (int i = 0; i < arr.GetLength(0); ++i)
    for (int j = 0; j < arr.GetLength(1); ++j)
      arr[i, j] = paraArray[i, j].ToString();

2d 数组在使用 Linq 时不是很方便,这就是为什么通常锯齿状数组(数组的数组)更可取:

  object[][] paraArray = new object[][] {
    new object[] {1, 2, 3 },
    new object[] {4, 5, 6 },
  };

  ... 

  // Working with jagged array is much easier than with 2d one 
  string[][] arr = paraArray
    .Select(line => line
       .Select(item => item.ToString())
       .ToArray())
    .ToArray();

关于c# - 将对象转换为多维字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38889564/

相关文章:

.net - 访问 SQL Server 的 Entity Framework 代码中的访问冲突

javascript - 循环浏览文件夹 Node.JS 中的文件

c++ - 从函数 C++ 返回数组

php - 如何解码编码的数组值

.net - F# 和泛型类型

c# - 如何在.net Core 3.0中显示400错误的自定义页面

c# - 找不到类型或命名空间名称 'BundleCollection'(是否缺少 using 指令或程序集引用?)

c# - 实在看不懂C#的引用

c# - 匿名类型范围问题

c# - 如何从 .net 中 wwwroot 内的多个文件夹提供 html 文件