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
    10

    static 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


Anmelden zum Antworten