Icomparer interface

Icomperer interface werkt als volgt:

de volgende method wordt geimplementeerd:

        public int Compare(object x, object y)
        {
            persoon xx = (persoon)x;
            persoon yy = (persoon)y;
            return string.Compare(xx.Achternaam, yy.Achternaam);
        }

Hiermee kun je dus properties van twee instances van dezelfde class vergelijken. ( in bovenstaande geval dus class persoon, met property achternaam ) Kun je gebruiken om te checken of acternaam eventueel al bestaat in een list of iets dergelijks.

Je kunt het ook gebruiken om de lijst te sorteren. hiervoor moet je dan gebruik maken van geneste classes. De nested class is dus een versie van je eigen class maar dan gesorteerd op geen bepaalde eigenschap:

        private class clsperoonsorteerAchternaam : IComparer
        {
            int IComparer.Compare(object a, object b)
            {
                persoon x = (persoon)a;
                persoon y = (persoon)b;
                return string.Compare(x.Achternaam, y.Achternaam);
            }
        }

Om deze geneste class in de client te krijgen moet je een method maken die een instance van deze geneste class, die dus gesorteerd is, teruggeegt:

         public static IComparer persoonsorteerAchternaam()
        {
            return new clsperoonsorteerAchternaam ();
        }

In je client heb je dus een array aangemaakt, die volgemaakt met instances van je class ( persoon dus ) die je wilt gaan sorteren. Het sorteren van een array met objecten gaat als volgt:

 System.Array.Sort(arrperssoon, persoon.persoonsorteerAchternaam());

Dus: arrpersoon is de array met de class persoon die je hebt aangemaakt en persoonsorteerAchternaam() is de method in de persoon class die de gesrorteerde geneste class teruggeeft.

{{opmerking.Naam}}:

{{opmerking.OpmerkingText}}

            

Saving your comment....

Naam is verplicht!
Email is verplicht!
Opmerking is verplicht!