C# 如何将多维整数数组转换为多维字符串数组

C# 如何将多维整数数组转换为多维字符串数组,c#,C#,我尝试了stringbuilder,但它会合并列 // I have this array { { 1, 2 }, { 3, 4 }, { 5, 6 } }; //I want to convert it to a string 1 2 3 4 5 6 // with string builder var output = new string[a.GetUpperBound(0) + 1]; for (int i = 0; i <= a.

我尝试了stringbuilder,但它会合并列

// I have this array

{ { 1, 2 }, { 3, 4 }, { 5, 6 } };

//I want to convert it to a string 

1 2
3 4
5 6

 // with string builder 


        var output = new string[a.GetUpperBound(0) + 1];
        for (int i = 0; i <= a.GetUpperBound(0); i++)
        {
            var sb = new StringBuilder();
            for (int j = 0; j <= a.GetUpperBound(1); j++)
                sb.Append(a[i, j]);

            output[i] = sb.ToString();
        }

            the results will be 
                12
                34
                56
//我有这个数组
{ { 1, 2 }, { 3, 4 }, { 5, 6 } };
//我想把它转换成字符串
1 2
3 4
5 6
//使用字符串生成器
var输出=新字符串[a.GetUpperBound(0)+1];
对于(int i=0;i
private static void Main(字符串[]args)
{
var arr=newint[,]{1,2},{3,4},{5,6};
var sb=新的StringBuilder();
对于(int x=0;x
您可以这样做:

public static void Main()
{
    int[,] array = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
    StringBuilder sb = new StringBuilder();

    for (int x = 0; x < array.GetLength(0); x++)
    {
        for (int y = 0; y < array.GetLength(1); y++)
        {
            sb.Append(array[x, y] + " ");
        }
        sb.Append(Environment.NewLine);
    }
    Console.Write(sb);
    Console.ReadLine();
}
  int[,] array = new int[,] {
    { 1, 2, },
    { 3, 4, },
    { 5, 6, },
  };

  StringBuilder sb = new StringBuilder();

  for (int i = 0; i < array.GetLength(0); ++i) {
    if (i > 0)
      sb.AppendLine();

    for (int j = 0; j < array.GetLength(1); ++j) { 
      if (j > 0)  
        sb.Append(" ");

      sb.Append(array[i, j]);
    }

  }

  String result = sb.ToString();

  // 1 2
  // 3 4
  // 5 6
  Console.Write(result);
publicstaticvoidmain()
{
int[,]数组={1,2},{3,4},{5,6};
StringBuilder sb=新的StringBuilder();
for(int x=0;x
您将得到以下结果:


如果您想要简单的解决方案,请从二维阵列切换到锯齿阵列:

  int[][] array = new int[][] {
    new int[] { 1, 2, },
    new int[] { 3, 4, },
    new int[] { 5, 6, },
  };
这样做之后,您就可以轻松地

  string result = String.Join(Environment.NewLine, 
    array.Select(items => String.Join(" ", items)));

  // 1 2
  // 3 4
  // 5 6
  Console.Write(result);
对于2D阵列,您必须实现如下内容:

public static void Main()
{
    int[,] array = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
    StringBuilder sb = new StringBuilder();

    for (int x = 0; x < array.GetLength(0); x++)
    {
        for (int y = 0; y < array.GetLength(1); y++)
        {
            sb.Append(array[x, y] + " ");
        }
        sb.Append(Environment.NewLine);
    }
    Console.Write(sb);
    Console.ReadLine();
}
  int[,] array = new int[,] {
    { 1, 2, },
    { 3, 4, },
    { 5, 6, },
  };

  StringBuilder sb = new StringBuilder();

  for (int i = 0; i < array.GetLength(0); ++i) {
    if (i > 0)
      sb.AppendLine();

    for (int j = 0; j < array.GetLength(1); ++j) { 
      if (j > 0)  
        sb.Append(" ");

      sb.Append(array[i, j]);
    }

  }

  String result = sb.ToString();

  // 1 2
  // 3 4
  // 5 6
  Console.Write(result);
int[,]数组=新的int[,]{
{ 1, 2, },
{ 3, 4, },
{ 5, 6, },
};
StringBuilder sb=新的StringBuilder();
对于(int i=0;i0)
(某人);
对于(intj=0;j0)
某人加上(“”);
sb.追加(数组[i,j]);
}
}
字符串结果=sb.ToString();
// 1 2
// 3 4
// 5 6
控制台。写入(结果);

创建一个stringbuilder,在外部维度上循环{在内部维度上循环{write values},写换行符},在生成器上调用字符串?我已经这样做了,但它不会提供我需要的内容,它会合并列您需要自己添加空格;通常只需
if(col!=0)sb.Append(“”)
我看不出从二维到锯齿状的变化除了增加复杂性之外还有什么作用…@Marc gravel:人们只能放一行
String.Join(Environment.NewLine,array.Select(items=>String.Join(“,items));
将锯齿状数组表示为字符串;对于二维数组,必须实现一个循环