Objekt kopieren
-
Hi zusammen ich glaub ich steh grad mörder aufm Schlauch, ich will eine ArrayList kopieren, AL 1 in Al 2
Al2 = Al1;
ist ja nur Referenz, oder??
-
Clone()
sollte gehen
Um ausführlicher zu sein:
static void Main(string[] args) { ArrayList arrayList1 = new ArrayList(); ArrayList arrayList2; for (int i = 0; i < 5; i++) { arrayList1.Add(i); } arrayList2 = (ArrayList)arrayList1.Clone(); arrayList2[0] = 10; Console.WriteLine((int)arrayList1[0]); Console.WriteLine((int)arrayList2[0]); Console.ReadKey(); }
führt zu Ausgabe:
0
10static void Main(string[] args) { ArrayList arrayList1 = new ArrayList(); ArrayList arrayList2; for (int i = 0; i < 5; i++) { arrayList1.Add(i); } arrayList2 = arrayList1; arrayList2[0] = 10; Console.WriteLine((int)arrayList1[0]); Console.WriteLine((int)arrayList2[0]); Console.ReadKey(); }
führt zur Ausgabe:
10
10
-
hm und wenn mein Intellisens auf meinem Object kein clone kennt??
foreach (object o in alPath) //hier wird es erzeugt //und hier hatte ich bislang lokalFromShape = (Shape)o;
Ich bekomm auf object nur equals getHashCode getType und toString
-
Objects implementieren auch kein IClonable und damit besitzen die auch kein Clone(). ArrayList direkt implementiert aber IClonable.
-
Ich weiss ja nicht was Du in deinem ArrayList abspeicherst. Aber ich würd mal in meinen jugendlichen Leichtsinn behaupt, implementiere für das betreffende Objekt ICloneable