Avatar billede nzc Nybegynder
19. september 2004 - 10:05 Der er 5 kommentarer

sletning af objekter i arraylist

Hej!

Jeg har en arrayliste hvori jeg har en række objekter. Disse objekter er unikt identificeret med propertyen "Id". Derudover har jeg en liste over de objekter i den første arrayliste som skal slettes fra den.

foreach (Behandlingssaet b in al)
{
        foreach (int i in res)
    {
        if (b.Id == i)
        al.Remove(b);
    }
}

Men som i eksperter jo nok allerede kan se (!) så giver dette en error:

Exception Details: System.InvalidOperationException: Collection was modified; enumeration operation may not execute.

Dette skyldes, at jeg sletter et objekt i den arrayliste som jeg er i gang med at loope rundt på.

Mit spørgsmål er så, hvordan ender jeg med en arrayliste kun indeholdende de objekter som ikke står listet i min anden arrayliste (den der indeholder de Id'er på de objekter der ikke skal være i al).

på forhånd tark :)

NZC
Avatar billede arne_v Ekspert
19. september 2004 - 10:20 #1
Det bedste vil nok være at skifte fra ArrayList til Hashtable med id som key,
så kan du jo bare slette ....
Avatar billede arne_v Ekspert
19. september 2004 - 10:21 #2
Ellers tror jeg at du bliver nødt til at lave en ny ArrayList. Enten:
- omvendt d.v.s. at du flytter alle dem der ikke ska slettes over i den nye
eller
- du gemmer dem der skal slettes og løber så gennem dem og sletter dem i al
Avatar billede nzc Nybegynder
19. september 2004 - 10:22 #3
ja det kan du ha ret i!

Jeg prøvede lige det her

for (int i = 0; i < al.Count; i++)
                    {       
                        behandlingssaet = (Behandlingssaet)al[i];
                        foreach (int j in res)
                        {
                            if (behandlingssaet.Id == j)
                            {
                                al.Remove(behandlingssaet);
                                i--;
                            }
                        }   
                    }

og det virker :) men det er ikke så pænt som en hashtable. Smid svar arne_v :)
Avatar billede arne_v Ekspert
19. september 2004 - 10:31 #4
svar
Avatar billede arne_v Ekspert
03. oktober 2004 - 15:30 #5
??
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