2016-08-03 10 views
0

Ich habe zwei 2D-Byte-Arrays, die ich zusammenführen möchte. Zum Beispiel:C# Kombinieren Sie zwei 2D-Byte-Arrays (Nullen ausfüllen)

2D array1:   2D array2:   Combined array3: 
[1][0][1]   [0][1][0]   [1][1][1] 
[0][0][0]   [1][0][1]  =>  [1][0][1] 
[1][0][1]   [0][1][0]   [1][1][1] 

Ich habe versucht, wie folgt aus:

for(int i = 0; i < array3.GetLength(0); i++) 
{ 
    for(int j = 0; j < array3.GetLength(1); j++) 
    { 
     // Missing a cast 
     array3[i, j] = array1[i, j] + array2[i, j]; 
    } 
} 

Die Zeile unter dem Kommentar sagt, es ist nicht zu byte von int umwandeln kann. Ich habe das gelesen: byte + byte = int... why?, konnte aber immer noch nicht herausfinden, was ich erreichen möchte.

Wie würde ich sie kombinieren? Danke im Voraus!

+2

'array3 [i, j] = (byte) (array1 [i, j] + array2 [i, j]);' Sein Zusatz - nicht sicher, wo/wie 'Nullen ausfüllen 'ins Spiel kommt – Plutonix

+0

Ich habe das versucht, aber nicht funktioniert. Neustart von Visual Studio und jetzt funktioniert es. Indem ich Nullen füllte, meinte ich, alle Nullen zu ersetzen, wo eine 1 in dem anderen Array ist. Danke für die Hilfe! –

Antwort

1

diese versuchen, die Ausgabe, die Sie erhalten möchten:

for(int i = 0; i < array3.GetLength(0); i++) 
{ 
    for(int j = 0; j < array3.GetLength(1); j++) 
    { 
     // All you need to do is cast the int to a byte. 
     array3[i, j] = (byte)((array1[i, j] == 0) ? array2[i, j] : array1[i, j]); 
    } 
} 

array1[i, j] Hinzufügen und array2[i, j] könnten Sie 2 geben, die Sie in Ihrem Beispiel nicht wat is wollen.

+0

Vielen Dank! –

+0

Froh, dass ich @ m.o helfen konnte. –