Avatar billede CodingJoe Nybegynder
16. maj 2013 - 17:51 Der er 5 kommentarer og
1 løsning

Kopiere et objekt uden at få referencer med.

Jeg er har mødt en lille udfordring, som jeg gerne vil have lidt hjælp til. Jeg har behov for at kopiere et List<objekt>, der indeholder et træ af andre underobjekter.

Hvis jeg laver en ny List<MitObjekt> = minListeAfObjekter, så tager den referencerne med. Dvs. selv hvis jeg ændrer på min nye liste, så er ændringen også sket i den gamle liste. Dette sker jo fordi, der er en pointer / reference i heap'en. I mit tifælde vil jeg gerne lave en kopi uden relationer til den gamle liste.

Hvordan gør jeg det? På nettet skriver de nogle ting, ikke har været brugbare.
Avatar billede arne_v Ekspert
16. maj 2013 - 18:21 #1
Saa du vil gerne lave en deep clone?

Det nemmeste er hvis alt er serializable og du kan serialisere til en MemoryStream og deserialisere fra den igen.
Avatar billede CodingJoe Nybegynder
16. maj 2013 - 18:39 #2
Ja, jeg har læst om deep clone.De er desværre ikke serializable, men det kan være de bliver nødt til at være det. For at kunne deep clone skal mine objekter vel implementere IClonable.
Avatar billede arne_v Ekspert
16. maj 2013 - 18:47 #3
Hvis du vil tilfoeje Clone metoder til alle klasser for at haandkode en deep Clone, saa ja.

Men det kan altsaa godt blive en lidt tung loesning.
Avatar billede CodingJoe Nybegynder
18. maj 2013 - 13:01 #4
Bare smid et svar ind :)
Avatar billede arne_v Ekspert
18. maj 2013 - 14:50 #5
svar
Avatar billede CodingJoe Nybegynder
18. maj 2013 - 19:44 #6
Arne, kan du ikke kigge på denne ->
http://www.eksperten.dk/spm/981314
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester