2016-07-25 130 views
0

我有锯齿2D阵列像这样:复制2D阵列从锯齿状2D阵列到另一个锯齿状2D阵列

static void Main(string[] args) 
    { 
     int[][,] newArray = new int[2][,]; 

     int[][,] waypoints = new int[4][,] 
     { 
      new int[,] {{6,3,4,5,6}}, 
      new int[,] {{1,3,4,5,6}}, 
      new int[,] {{1,4,3,2,1}}, 
      new int[,] {{6,3,4,5,6}} 
     }; 

     int l = 0; 
     int m = 0; 

     for (int i = 0; i < waypoints.Length; i++) 
     { 
      for (int j = 0; j < waypoints[i].GetLength(0); j++) 
      { 
       for (int k = 0; k < waypoints[i].GetLength(1); k++) 
       { 
        if (k == 1 || k == 3) 
        { 
         // waypoints[i][j,k].CopyTo(newArray[i][j,k]); 
        } 
        l++; 
        m++; 
       } 
      } 
     } 
     Console.ReadKey(); 
    } 

,我需要从每个交错数组只[0,1]和[0提取物, 3] 2D数组并将其存储在新的锯齿阵列 - newArray中。请,你能帮助我,怎么做。提前谢谢了。

所需的输出应该是这样的:

int[][,] newArray = new int[2][,]; 
{ 
    new int[,] {{3,5}}, 
    new int[,] {{3,5}}, 
    new int[,] {{4,2}}, 
    new int[,] {{3,5}} 
}; 
+0

尝试这样的事情'的foreach(INT我在newArray [0,1] {//做的东西}' –

+0

目前还不清楚要如何将数据存储在'newArray',你能描述一下生成的数组应该是? –

+0

我已经在我的任务中添加了所需的输出 – SmithiM

回答

1

试试这个。请注意,我扩大了newArray的大小以容纳4个2D数组。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication26 
{ 
    class Program 
    { 
     static void Print3DArr(int[][,] arr) 
     { 
      foreach(var TwoDArr in arr) 
      { 
       for (int lineInd = 0; lineInd < TwoDArr.GetLength(0); lineInd++) 
       { 
        for (int elemInd = 0; elemInd < TwoDArr.GetLength(1); elemInd++) 
        { 
         Console.Write(TwoDArr[lineInd, elemInd] + " "); 
        } 
        Console.WriteLine(); 
       } 
       Console.WriteLine(); 
       Console.WriteLine(); 
      } 
     } 

     static void Main(string[] args) 
     { 
      int[][,] newArray = new int[4][,]; 

      int[][,] waypoints = new int[4][,] 
      { 
       new int[,] {{6,3,4,5,6}}, 
       new int[,] {{1,3,4,5,6}}, 
       new int[,] {{1,4,3,2,1}}, 
       new int[,] {{6,3,4,5,6}} 
      }; 

      Print3DArr(waypoints); 

      for (int TwoDArrIndex = 0; TwoDArrIndex < waypoints.Length; TwoDArrIndex++) 
      { 
       newArray[TwoDArrIndex] = new int[waypoints[TwoDArrIndex].GetLength(0), 2]; 

       for (int LineIn2DArr = 0; LineIn2DArr < waypoints[TwoDArrIndex].GetLength(0); LineIn2DArr++) 
       { 
        newArray[TwoDArrIndex][LineIn2DArr, 0] = waypoints[TwoDArrIndex][LineIn2DArr, 1]; 
        newArray[TwoDArrIndex][LineIn2DArr, 1] = waypoints[TwoDArrIndex][LineIn2DArr, 3]; 
       } 
      } 

      Print3DArr(newArray); 
      Console.ReadKey(); 
     } 
    } 
} 
+0

这正是我所期待的。非常感谢您的时间彼得! – SmithiM

+0

不客气:-)。 –