Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C#: Stack<int[]> sisällön pitäminen muuttumattomana

miniDisc [07.04.2019 03:14:36]

#

Tämäntyyppisen ongelman kanssa joutunut jumittamaan, löytyisikö täältä apua? Tahtoisin siis pitää tuon Stackiin lisätyn sisällön muuttumattomana, sillä siitä olisi nimenomaan tarkoitus myöhemmin tarkistaa onko muutoksia tullut. :)

int[] yks = new int[] { 1, 2, 3 };
int[] kaks = new int[] { 4, 5, 6 };
int[] kolme = new int[] { 7, 8, 9 };
Stack<int[]> testi = new Stack<int[]>();
testi.Push(yks);
testi.Push(kaks);
testi.Push(kolme);

int[] tulostus = testi.Pop();
kolme[2] = 1;

foreach (int i in tulostus)
{
     Console.Write(i);
}
 // Output: 781   Tavoite: 789

jalski [07.04.2019 07:15:31]

#

Veikkaisin, että C# tallentaa Stack objektiin refrenssin sinne työntämääsi taulukkoon, ei taulukon sisältöä. Sinun tarvitsee varmaan toteuttaa jonkun sortin clone/copy.

Metabolix [07.04.2019 11:21:35]

#

Kopion saa tehtyä Clone-metodilla. Ehkä selvintä on kloonata kaikki jo pinoon laittamisen yhteydessä, jos tavoitteena tosiaan on saada sinne ”muuttumatonta” dataa.

miniDisc [08.04.2019 12:19:59]

#

Toimii. Kiitos neuvoista!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta