Moin,
ich scheitere gerade daran eine Liste mit komplexen Items also keine List<string> sondern List<T> bei Value zu kopieren. Ich möchte eine Liste verändern und später falls gewünscht diese Änderung rückgängig machen, in dem ich einfach diese BackupListe dann wieder zurück kopiere.
Das scheitert daran, dass in C# List<T> bei Reference übergeben werden. Also eine Änderung in der original Liste immer auch in der Backupkopie "ist".
Ist sowas nicht vorgesehen? Löst man so etwas anders ? Dann wie sollte ich dieses Undo Funktionalität am besten machen?
Ich hab schon einiges Probiert z.B.:
immer noch hat eine Änderung im Orginal Einfluss auf die Kopie
--------------------------------------------------------------------------------------
Mein konkretes Problem hab ich gelöst. Trotzdem würde ich gerne wissen wie man List<T> bei Value kopiert?
Meine Lösung im konkreten Fall war:
List<T> wobei T ein Property string hat, das ich per Backup sichern wollte. Diese Strings hab ich per for-Loop in eine List<string> gesichert und später nur diese Property in List<T> zurück kopiert auch mit for-Loop.
ich scheitere gerade daran eine Liste mit komplexen Items also keine List<string> sondern List<T> bei Value zu kopieren. Ich möchte eine Liste verändern und später falls gewünscht diese Änderung rückgängig machen, in dem ich einfach diese BackupListe dann wieder zurück kopiere.
Das scheitert daran, dass in C# List<T> bei Reference übergeben werden. Also eine Änderung in der original Liste immer auch in der Backupkopie "ist".
Ist sowas nicht vorgesehen? Löst man so etwas anders ? Dann wie sollte ich dieses Undo Funktionalität am besten machen?
Ich hab schon einiges Probiert z.B.:
ListBackup.AddRange(ListOrig.ToArray());
immer noch hat eine Änderung im Orginal Einfluss auf die Kopie
--------------------------------------------------------------------------------------
Mein konkretes Problem hab ich gelöst. Trotzdem würde ich gerne wissen wie man List<T> bei Value kopiert?
Meine Lösung im konkreten Fall war:
List<T> wobei T ein Property string hat, das ich per Backup sichern wollte. Diese Strings hab ich per for-Loop in eine List<string> gesichert und später nur diese Property in List<T> zurück kopiert auch mit for-Loop.
codewars.com Rank: 4 kyu
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „nogood“ ()