2016-07-25 4 views
0

ich wie so zackig 2D-Array habe:Kopieren 2D-Array aus gezacktem 2D-Array in in einer anderen gezackt 2D-Array

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(); 
    } 

Und ich brauche nur von jedem gezackten Array zu extrahieren [0,1] und [0, 3] 2D-Array und speichern Sie das in neuen gezackten Array - newArray. Bitte, könntest du mir helfen, wie das geht. Vielen Dank im Voraus.

gewünschte Ausgabe sollte folgendermaßen aussehen:

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

Probieren Sie etwas wie dieses 'foreach (int i in newArray [0,1] {// mach was}' –

+0

Es ist nicht klar, wie die Daten in 'newArray' speichern möchten. Können Sie beschreiben, was die Das resultierende Array sollte " –

+0

Ich habe die gewünschte Ausgabe in meiner Aufgabe hinzugefügt. – SmithiM

Antwort

1

bereits. Beachten Sie, dass ich die Größe von newArray auf 4 2D-Arrays erweitert habe.

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

Genau das habe ich gesucht. Vielen Dank für Ihre Zeit Peter !! – SmithiM

+0

Sie sind herzlich willkommen :-). –