Autor Beitrag
BCT1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Fr 04.02.11 18:28 
Hi, nachdem ich ein bisschen mit Listen gearbeitet habe ist mir aufgefallen, dass wenn ich eine Liste einer anderen Liste zuordne und dann in einer Liste etwas ändere, dann wird es auch in der anderen geändet. Hier mal kurz was ich meine:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
List<int> liste = new List<int>();
liste.Add(10);

List<int> temp = liste;
temp[0] = 20;

Console.WriteLine(liste[0].ToString());     // -> 20
Console.WriteLine(temp[0].ToString());     // -> 20
Console.ReadLine();

Wenn ich die eine der Listen ändere, ändert sich auch die andere. Wie kann ich das verhindern dass die Listen immer so verknüpft sind?

Hoffe ihr könnt mir helfen.
- BCT1


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Fr 04.02.2011 um 17:39
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 04.02.11 18:35 
Mittels "List<int> temp = liste;" referenzierst du nur auf die andere Liste (ich hoffe, du kennst den Unterschied zwischen Wertetypen und Referenztypen?).

Zum Kopieren mußt du eine neue Liste anlegen:
ausblenden C#-Quelltext
1:
List<int> temp = new List<int>(liste);					

Für diesen Beitrag haben gedankt: BCT1