示例#1
0
        // =======================================================================
        // Add(), lägger till en person i highscore-listan.
        // =======================================================================
        void Add(int points)
        {
            // Skapa en temporär variabel av typen HSItem:
            HSItem temp = new HSItem(name, points);

            // Lägg till tmp i listan. Observera att följande Add()
            // tillhör klassen List (är alltså skapad av Microsoft).
            // Metoden har endast samma namn, som just denna Add():
            highscore.Add(temp);
            Sort();             // Sortera listan efter att vi har lagt till en person!

            // Är det för många i listan?
            if (highscore.Count > maxInList)
            {
                // Eftersom vi har lagt till endast en person nu, så betyder
                // det att det är en person för mycket. Index på personen
                // som är sist i listan, är samma som maxInList. Vi vill ju
                // att det högsta indexet ska vara maxInList-1. Allstå kan
                // vi bara ta bort elementet med index maxInList.
                // Exempel:
                // maxInList är 5, vi har 6 element i listan. Det sjätte
                // elementet har index 5. Vi gör highscore.RemoveAt(5):
                highscore.RemoveAt(maxInList);
            }
        }
示例#2
0
        // =======================================================================
        // Sort(),  metod som sorterar listan. Metoden
        // anropas av Add() när en ny person läggs till i
        // listan. Använder algoritmen bubblesort
        // =======================================================================
        void Sort()
        {
            int max = highscore.Count - 1;

            // Den yttre loopen, går igenom hela listan
            for (int i = 0; i < max; i++)
            {
                // Den inre, går igenom element för element
                int nrLeft = max - i;                 // För att se hur många som redan gåtts igenom
                for (int j = 0; j < nrLeft; j++)
                {
                    if (highscore[j].Points < highscore[j + 1].Points)                     // Jämför elementen
                    {
                        // Byt plats!
                        HSItem temp = highscore[j];
                        highscore[j]     = highscore[j + 1];
                        highscore[j + 1] = temp;
                    }
                }
            }
        }