array
-
int [] array = new int[5]; int [] saveArray = new int[5];
Wenn ich die Daten von array speichern will muss ich dann wirklich eine for schleife machen und jedes Element rüberkopieren ?
denn
saveArray = array
wäre ja nur eine shallow copy und wenn sich die Daten von array ändern wären die Daten von saveArray auch verändert.
-
Langsam könntest du wirklich aufhören mit Trollen. Nach mehr sieht mir das nicht mehr aus.
Aber auf deine Frage: Ja! Und vorallem nicht vergessen eine Kopie des Objektes zu erstellen.
-
inflames2k schrieb:
Und vorallem nicht vergessen eine Kopie des Objektes zu erstellen.
Häh
int [] array = new int[5]; int [] saveArray = new int[5]; for( int i = 0 ; i<savearray.length;i++) { saveArray[i] = array[i] ; }
-
System.Array.Copy hätte ich da im Angebot.
-
Stimmt Bashar, das hatte ich ganz vergessen.
@blurry333 das mit der Objektkopie hat sich erledigt. Schließlich handelt es sich ja um Integer und keine Referenzobjekte.
-
array.copyto ( )
heisst die funktion glaub ich
-
int [,] dimArr = new int[5,5] ; int[] arr = new int[5];
Jetzt will ich arr in dimArr speichern.
dimArr[0] = arr ;
Mein Compiler meckert jetzt aber.
-
-
Ich würde auch meckern, wenn mir jemand einen Sack Reis gibt obwohl ich nur ein Korn wollte.
-
dimArr[0] = arr ;
ich müsste es wohl irgendwie so machen
dimArr[0, ???] = arr ;
aber keine Ahnung
Und richtig initalisiert ist es ja.
-
blurry333 schrieb:
int [,] dimArr = new int[5,5] ; int[] arr = new int[5];
Jetzt will ich arr in dimArr speichern.
dimArr[0] = arr ;
Mein Compiler meckert jetzt aber.
Wenn das ginge, dann würde ja nur eine flache Kopie (shallow) gemacht werden. Du hast doch gerade vorher festgestellt, dass man, um das zu vermeiden, elementweise kopieren muss. Ob nun in einer Schleife oder mit Array.Copy. Was ist mit diesem Erkenntnisgewinn in der Zwischenzeit passiert?
-
ich weiß . Aber die Syntax stimmt nicht. Ich will ja in diesem Fall nur eine flache Kopie
-
Dann solltest du das vielleicht dazusagen.
Mit einem rechteckigen mehrdimensionalen Array geht das nicht, da gibt es nämlich nur das Gesamtarray und die einzelnen Elemente. Es gibt keine Referenzen auf Teil-Arrays. Anders bei einem "verzweigten" Array (Microsoft nennt das so: http://msdn.microsoft.com/de-de/library/2s05feca(v=vs.80).aspx ). Das ist ein Array, das ganz normal (Referenzen auf) andere Arrays enthält, und damit geht auch das, was du vorhast.
int[] [] dimArr = new int[5][]; int[] arr = new int[5]; dimArr[0] = arr;