14. september 2009 - 11:15Der er
7 kommentarer og 1 løsning
Array til Jagged Array
Hej
Jeg har et array, OpraabteTal[], som jeg gerne vil have smidt ind i et jagged array, Arrayet[][]. Antallet af arrays dette jagged array skal indeholde bestemmes af brugeren i starten af programmet. Det er så meningen at jeg vil indsætte tallene i 'OpraabteTal' på første linje i 'Arrayet' og derefter rydde 'OpraabteTal' og indsætte nye numre. Antallet af gange dette kan gøres (indsætte tallene fra OpraabteTal i Arrayet) bestemmes også af antallet af arrays brugeren har bestemt Arrayet[][] til at indeholde. Men hvordan f*%&#n får jeg smidt et array over i et jagged array?
Hov det gik vidst lidt for stærkt! Jeg arbejder med List<> ikke array til variablen OpraabteTal. Altså er spørgsmålet faktisk: Hvordan sætter jeg værdierne i listen over i det jaggede array?
Kunne det være noget lignende at det her du leder efter?
List<List<int>> masterList = new List<List<int>>(); for (int i = 0; i < 3; i++) { List<int> opraabteTal = new List<int>(); opraabteTal.Add(2); opraabteTal.Add(4); opraabteTal.Add(6); opraabteTal.Add(8);
masterList.Add(opraabteTal); } //masterList indeholder nu 3 lister med opråbter tal....
Det er noget lignende det der, det skal bare ikke køre i en 'for' loop som du viser der, for spillene skal spilles individuelt så numrene kommer først efterhånden som spilleren trykker videre. Jeg er blevet foreslået at lave det samme som du foreslår, men masterlisten skal, istedet for tal, indeholde referencer til de andre lister med tal. Dog er det en svær nød at knække når man først lige er blevet introduceret for programmering!
Den masterliste der er i mit eksempel indeholder netop referencer til de andre lister med tal.... masterlisten er en liste af tal-lister.
For-løkken er udelukkende for eksemplets skyld. Du kan ligge tal i listerne på kryds og tværs som du har lyst. Både før og efter du placerer tal-listerne i masterlisten.
Nu er jeg så lige stødt på et nyt problem... Hvordan skriver man sådan en list of lists ud? foreach virker ikke som den plejer i dette tilfælde, men den virker jo heller ikke ved fler-dimensionelle arrays. Er det bare en nested for loop der skal bruges til det så?
Du kan ikke give point fordi jeg ikke har svaret endnu. Jeg har kun lavet kommentarer. Det her er et svar, så nu burde du kunne komme af med nogle point :-)
Hvis du skal skrive listerne ud kan du bruge følgende kodeeksempler:
//Skriver alle tal ud fra alle lister. foreach (List<int> list in masterList) { foreach (int i in list) { Console.WriteLine(i); } }
//Skriver alle tal ud i den første liste. foreach (int i in masterList[0]) { Console.WriteLine(i); }
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.