【问题标题】:How to create a jagged array x by x from 3 arrays c#如何从 3 个数组 c# 创建一个锯齿状数组 x x x x
【发布时间】:2018-08-09 04:16:00
【问题描述】:

我有 3 个 int 数组

 var x= new int[] { 1, 1, 2, 2, 2 }; 
 var y= new int[] { 2, 2, 3, 2, 4 };
 var z= new int[] { 1, 2, 1, 3, 3 };            

我想创建一个 5 行 3 列的锯齿状数组,如下所示:

谁能帮帮我,谢谢。

【问题讨论】:

  • 您的数组包含 5 个元素,所以我认为您需要 [3][5] 数组。

标签: c# arrays type-conversion jagged-arrays


【解决方案1】:

你试过了吗:

var x = new int[] { 1, 1, 2, 2, 2 };
var y = new int[] { 2, 2, 3, 2, 4 };
var z = new int[] { 1, 2, 1, 3, 3 };
int[][] jagged = new int[][] { x, y, z };

【讨论】:

  • 笨蛋,我问错了。我真正想要的是 5 x 3,但无论如何感谢您回答我的问题
【解决方案2】:

您可以如下实现:

var x= new int[] { 1, 1, 2, 2, 2 }; 
var y= new int[] { 2, 2, 3, 2, 4 };
var z= new int[] { 1, 2, 1, 3, 3 };      

int[][] jagged = new[] { x, y, z };

【讨论】:

    【解决方案3】:

    一个简单的for循环就可以了:

    var x= new int[] { 1, 1, 2, 2, 2 }; 
    var y= new int[] { 2, 2, 3, 2, 4 };
    var z= new int[] { 1, 2, 1, 3, 3 };  
    
    int [][] jagged =new int[5][];
    for (int i=0;i<5;i++)
        jagged[i] = new int[]{x[i],y[i],z[i]};
    

    【讨论】:

      【解决方案4】:

      其他答案向您展示了如何轻松获得 3 x 5 数组 (new[] { x, y, z })。要获得所需的 5 x 3 数组,您可以“简单地”转置 3 x 5。

      类似:

      public static T[][] Transpose<T>(T[][] arrays)
      {
          // sanity checks omitted
          var columns = arrays.Length;
          var rows = arrays.Select(x => x.Length).Max();
      
          var matrix = new T[rows][];
      
          for (var row = 0; row < rows; row++)
          {
              matrix[row] = new T[columns];
      
              for (var column = 0; column < columns; column++)
              {
                  // proper bounds checks omitted
                  matrix[row][column] = arrays[column][row];
              }
          }
      
          return matrix;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-23
        • 2021-10-27
        • 2013-12-06
        • 1970-01-01
        • 1970-01-01
        • 2020-11-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多