2016-12-19 6 views
0

Ich verwende C#. Ich möchte den Wert im Two-Dimension-Array durch ein anderes Two-Dimension-Array ersetzen.Zweidimensionaler Array-Wert durch Array ersetzen

Array was Wert ersetzt werden soll ist

{ 
    {100, 100, 100, 100}, 
    {100, 100, 100, 100}, 
    {100, 100, 100, 100}, 
    {100, 100, 100, 100} 
} 

und einige Array, was zu diesem Array ersetzen Wert

{ 
    {500,500}, 
    {500,500} 
} 

und ich erwartete:

{ 
    {100,100,100,100}, 
    {100,500,500,100}, 
    {100,500,500,100}, 
    {100,100,100,100} 
} 
+0

Sie müssen Ihren Code schreiben, wenn Sie irgendeine Hoffnung auf Hilfe wollen. – Daniel

+0

und was ist die Logik dahinter? – mybirthname

Antwort

0

Einfacher Code mit zwei Schleifen verstehen:

var bigger = new int[,] 
{ 
    {100, 101, 102, 103, 104}, 
    {100, 100, 100, 100, 100}, 
    {100, 100, 100, 100, 100}, 
    {100, 100, 100, 100, 100}, 
}; 

var smaller = new int[,] 
{ 
    {1, 2}, 
    {3, 4}, 
}; 

ReplaceValues (bigger, smaller, 3, 2); 

und statische Methode:

public static void ReplaceValues (int[,] destinationArray, int[,] replaceWith, int columnOffset, int rowOffset) 
{ 
    for (int row = 0; row < replaceWith.GetLength (0); row++) 
    { 
     for (int column = 0; column < replaceWith.GetLength (1); column++) 
     { 
      destinationArray[row + rowOffset, column + columnOffset] = replaceWith[row, column]; 
     } 
    } 
} 

Natürlich sollten Sie diesen Code ein Upgrade je nach Ihren Anforderungen.

Ergebnis:

Result

0

In dieser Fall müssen Sie die Dimension dieses Arrays vergleichen: Das große Array ist: 4x4 und th e klein ist 2x2 (doppelt). So Schleife durch das große Array ist:

bigarray[i x 2 + 1, j x 2 + 1] = smallarray [i,j]. 

So kann das Formular sein:

bigarray[i x compare_value + 1, j x compare_value + 1] = smallarray [i,j] 

Mit compare_value = bigarray/ smallaray.

Verwandte Themen