Avatar billede testpilot_dk Nybegynder
25. maj 2005 - 16:27 Der er 21 kommentarer og
1 løsning

nye Objekter af mine Arrays, brug af objektet og ikke reference

Hej!

Jeg sidder og er ved at lave en slags tilstands maskine, ligger i en funktion og fungere perfekt. Mit problem er bare at jeg for hver tilstand skal gemme tilstanden og så arbejde videre på den.

Men hvordan får jeg gemt mit array så den ikke ændre på det senere!

Jeg bruger en ArrayList til at ligge mine Array Objekter på!
mit Array er et 5,6 array

Jeg skal tilsidst bruge samtlige tilstande! Håber i forstår!
Avatar billede driis Nybegynder
25. maj 2005 - 16:43 #1
ArrayList newAl = list.Clone();
Avatar billede testpilot_dk Nybegynder
25. maj 2005 - 16:45 #2
nope, det er stadig kun referencen, den har jeg nemlig prøvet
Avatar billede driis Nybegynder
25. maj 2005 - 16:52 #3
Har jeg forstået det rigtigt at du har en ArrayList indeholdende arrays ?

Så ville jeg nok prøve noget lign:

ArrayList newAl = new ArrayList();
foreach(object o in al)
{
  dinType[] tmp = (dinType[])o;
  newAl.Add(tmp.Clone());
}
Avatar billede testpilot_dk Nybegynder
25. maj 2005 - 16:56 #4
Får jeg så ikke en masse entries i min ArrayList ??? jeg skal kun have en for hvert array

Jeg ændre jo i original arrayet og det er disse ændringer som skal være synlige tilslut
Avatar billede testpilot_dk Nybegynder
25. maj 2005 - 17:09 #5
jeg har et originalt array: Field[5,6], her har jeg ændret nogle værdier, så har jeg forsøgt mig med at lave et nyt objekt
Field f = new Field[5,6];
Lægger det i min ArrayList.Add(f)

Meningen er at jeg skal have mange f'er i min liste og ikke en milliard forskellige poster!
Avatar billede Syska Mester
26. maj 2005 - 16:58 #6
a hva', du skal have mange f'er, men ikke mange poster? er mange f'er ikke lig med mange poster?

Tror du skal forklare dig noget bedre, eller smide noget kode her så vi bedre kan forstå hvordan du tænker og hvordan din kode overhovdet ser ud, som du kan se er der ikke nogen der har svaret, måske fordi de enten ikke ved det, eller ikke helt kan tolke hvad du vil og mener...

hold dig munter

// ouT
Avatar billede testpilot_dk Nybegynder
26. maj 2005 - 17:04 #7
Prøv så at hør!

Jeg har et field Array              str [5,6]

Jeg har samtidig en liste som jeg gerne vil have mine forskellige Arrays Lagt ind i!

Det er også fint nok, med mange Poster, men kun antallet af Arrays som ligger der, ikke noget med Antal Arrays * 5 * 6 poster

Mit problem er også mere at den liste kun indeholder reference til mine Arrays, dvs at når jeg ændre i et Array, så ændres det i samtlige Arrays, det vil jeg gerne undgå!
Mine Arrays skal være unikke i forhold til hinanden

Står det tydeligere nu
Avatar billede Syska Mester
26. maj 2005 - 23:28 #8
Lyder lidt som om du vil have lagt en arraylist ind i dit 2D array...

Hvad er den liste, er det dit array som skal ind i det andet array?

koder sig mere end 1000 linjer, smid din kode her..... hvis den altså ikke er top secret :-)

// ouT
Avatar billede Syska Mester
26. maj 2005 - 23:30 #9
Tegn og upload et billed til en server... måsker er det fordi du bruger nye navne nogle sted for ting som du referere tilbage til....
Avatar billede testpilot_dk Nybegynder
28. maj 2005 - 17:03 #10
Hej!
Koden er for kompleks at indsætte her! da det er en del af backgammon spil!

Jeg ønsker faktisk det modsatte af hvad du skriver!
Jeg ønsker at mange af Mine Arrays ligges ind i en ArrayList

sådan gør jeg nu for at kopiere det enkelte element i Arrayet til et nyt Array

    public Field[,] CopyField(Field[,] OriginalField)
    {

      Field[,] f = new Field[5, 6];

      int x = 0;
      for (int q = 0; q < 5; q++)
        for (int w = 0; w < 6; w++)
        {
          if (q == 4 && w > 2)
            x++;
          else
            f[q, w] = (Field)OriginalField[q, w].Clone();
        }
      return f;
    }

Det jeg returner skal jeg have i en ArrayList,    metoden ovenover, tager bare en frygtelig masse tid, da jeg skal gører det små 5000 gange
Avatar billede Syska Mester
30. maj 2005 - 14:36 #11
hvad laver den x++? kan ikke rigtig se hvad den laver....

Der må da også være nogle felter i dit array du aldrig kommer ind og kopiere... når q er 4 og w er størrer end 2... eller er det bare mig der ikke lige kan læse den kode????

// ouT
Avatar billede testpilot_dk Nybegynder
30. maj 2005 - 14:40 #12
x++ Laver ikke noget, den har jeg selv set og fjernet!


Det er rigtigt nok at jeg ikke kopiere alle mine felter, men det er bevidst idet at de ikke er initialiseret eller noget, det handler om felter 4,3 - 4,4 - 4,5
Avatar billede Syska Mester
30. maj 2005 - 14:48 #13
int[,] Test = new int[2, 3];

Test[0, 0] = 10;

int[,] Super = (int[,])Test.Clone();

Test[0, 0] = 20;

Console.WriteLine(Test[0, 0]);
Console.WriteLine(Super[0, 0]);

Her kopiere den i hvert fald det hele over, og det er ikke reference values, så må du også kunne gøre det samme med dine Field.....

// ouT
Avatar billede testpilot_dk Nybegynder
30. maj 2005 - 14:51 #14
Skal jeg gører noget bestemt, når jeg har andre objekter på mine fields!
Har forsøgt at clone dem også?
Hvordan cloner man en Controls, da jeg lægger de andre objekter ind i sådan en liste, for det enkelte field
Avatar billede Syska Mester
30. maj 2005 - 14:58 #15
Nu tror jeg snart vi skal have fat i nogle af de rigtige C# guru herinde....

Så skal du nok tage og gemme dem som object's i din liste, og så caste dem når du skal have dem ud igen, ellers kan du i hvert fald ikke gøre som jeg har gjort her...

Smid lige mere kode, så skal jeg se hvad der er af muligheder, kan ikke helt gennemskue hvordan det skal virke, og har derfor svært ved at se hvorfor du gemme flere forskellige object's i samme liste....

Field er et object fra hvad? synes ikke lige jeg kan finde den eller kan huske jeg har brugt den...

// ouT

// ouT
Avatar billede testpilot_dk Nybegynder
30. maj 2005 - 15:04 #16
Field er et selvdefineret objekt, jeg er ved at lave et backgammon spil, som indeholder [5,6]Fields, et til hvert felt, plus 2 til terninger, 1 til baren og 2 til hjem!

Jeg har forsøgt at kopiere samtlige members fra mit field og samtlige member fra min piece som er objekterne som ligger på det enkelte field, det virker bare ikke!

Jeg sender mere kode iaften! har den nemlig ikke her
Avatar billede Syska Mester
30. maj 2005 - 15:23 #17
6 x 4 = 20 felter = 1 array
2 spillere x 1 hjem hver = lille array
2 spillere x 1 bar = lille array

Tror hele koden bliver nemmere på den måde, end hvis du gemmer det hele i et, nu er det ikke lige noget jeg selv har prøvet at lave, så det er ikke noget jeg har gjort de store tanker omkring...

// ouT
Avatar billede Syska Mester
16. juni 2005 - 07:49 #18
Kan du bruge det til noget?
Avatar billede testpilot_dk Nybegynder
17. juni 2005 - 16:49 #19
Hej!

Undskyld at jeg ikke har svaret, men send du bare et svar, så får du nogle point!
Avatar billede Syska Mester
23. juni 2005 - 07:53 #20
svar

Damm, har lige fået mail i dag, men at der er kommet et svar i det her spm, måske eksperten har nogle små problemer
Avatar billede testpilot_dk Nybegynder
23. juni 2005 - 13:40 #21
Ja, de har nogle problemer :)
Avatar billede Syska Mester
23. juni 2005 - 13:51 #22
måske de skulle oprette et spm her på eksperten.dk for at få hjælp :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester