Avatar billede baitianlong Nybegynder
21. november 2005 - 05:20 Der er 3 kommentarer og
1 løsning

Liste af ord skal tælles.

Hej.

Jeg har en ArrayList, som indeholder ord. Jeg vil gerne vide hvor mange gange hvert ord er i listen.

Hvis listen f.eks ser sådan her ud: ("hus", "bil", "hest", "og", "i", "hus", "hus", "hest")

...vil jeg gerne have data, jeg kan putte i et datagrid, så det ser sådan her ud:

hus        3
hest        2
bil        1
og          1
i          1

Kan nogen hjælpe mig med det?
Avatar billede baitianlong Nybegynder
21. november 2005 - 05:27 #1
Jeg har lavet mig en klasse, der hedder Wordnumber til formålet. Den har to attributter nemlig string word og int number.

Det er vel noget med at jeg skal iterere gennem min arraylist og ved hvert ord checke om der er et Wordnumber objekt, der indeholder det aktuelle ord. Hvis der er, skal tallet i dette objekt hæves med 1, hvis ikke, skal objektet oprettes.
Avatar billede baitianlong Nybegynder
21. november 2005 - 05:42 #2
Nårh... Jeg fandt ud af det. Således:

foreach(string s in words)
    {
        bool found = false;
        foreach(Wordnumber wn in wordcontainer)
        {
            if(wn.Word.Equals(s))
            {
                wn.Number++;
                found = true;
                break;
            }
        }
        if(!found)
        {
            wordcontainer.Add(new Wordnumber(s));
        }
    }
    DataGrid1.DataSource = null;
    DataGrid1.DataSource = wordcontainer;
    DataGrid1.DataBind();
Avatar billede Slettet bruger
21. november 2005 - 05:44 #3
Du kan bruge en Hashtable http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionshashtablememberstopic.asp

Hvor dit ord er Key og antal gange den optræder en value.

Du gennemløber din array, for hver ord i array check om det findes i HashTable, hvis det ikke gør tilføj det med værdien 1, hvis ordet findes i HashTable lægger du en til værdien for ordet.
Avatar billede baitianlong Nybegynder
21. november 2005 - 05:57 #4
Mit egen metode virker ikke.... Den dræber maskinen:

StackOverflow

Jeg opretter lige et nyt spørgsmål, så kan du måske hjælpe mig der...
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