Kopi af List<> element i C#
Jeg roder lidt med et C# program (.Net 3.5) er er løbet ind i et problem. Jeg opretter en liste af lister af integer arrays:List<List<int[]>> MyList = new List<List<int[]>>();
Herefter tilføjer jeg 3 elementer:
MyList.Add(new List<int[]>());
MyList.Add(new List<int[]>());
MyList.Add(new List<int[]>());
De 3 elementer tilskrives værdier:
MyList[0].Add(new int[2]);
MyList[0][0][0] = 0;
MyList[0][0][1] = 0;
MyList[1].Add(new int[2]);
MyList[1][0][0] = 0;
MyList[1][0][1] = 1;
MyList[2].Add(new int[2]);
MyList[2][0][0] = 0;
MyList[2][0][1] = 2;
Og nu bliver det mærkeligt. Jeg vil nu tilføje endnu et element til MyList, og dette element skal have samme værdier som element [0]:
My_list.Add(new List<int[]>(My_list[0]));
Når jeg gør det på denne måde er element [0] og element [3] altid det samme. Dvs. ændrer jeg i element [3] ændres element [0] automatisk til det samme. Jeg har forsøgt at skrive element [0] til en temp liste og derefter skrive temp til element [3], men så er begge elementer plus temp listen altid det samme.
Hvordan kan jeg oprette et nyt element i min liste og tilskrive værdier fra et andet element i samme liste, uden at de to elementer i uadskildelige?