XML * XML-SCHEMA * XPATH * XSL * XSL-FO * SVG * XQUERY * XPROC * ANT * DIVERSES



Diverses / Objekt-Orientierte Programmierung mit C#.NET / C#.NET: IComparer

C#.NET: IComparer

C#.NET: IComparer

Auf dieser Seite:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace csharpkomplett
{
    public class MenschComparer : IComparer<Mensch>
    {
        #region IComparer<Mensch> Member
        public int Compare(Mensch x, Mensch y)
        {
            if (x.ID < y.ID) return -1;
            else if (x.ID > y.ID) return 1;
            else return 0;
        }
        #endregion
    }
    interface ISoll
    {
        int ID { get; set;}
    }
    public class Mensch : ISoll
    {
        private string name, vorname;
        private int _ID;
        public string Name
        {
            get { return name; }
            set { name = value.ToUpper(); }
        }
        public string Vorname
        {
            get { return vorname; }
            set { vorname = value.ToUpper(); }
        }
        public int ID
        {
            get { return this._ID; }
            set { this._ID = value; }
        }
        public Mensch(string nn, string vn)
        {
            this.Vorname = vn;
            this.Name = nn;
        }
        public Mensch(int id, string nn, string vn)
        {
            this._ID = id;
            this.Vorname = vn;
            this.Name = nn;
        }
        public override string ToString()
        {
            return String.Format("{0} {1} {2}", 
                   this.ID, this.Vorname, this.name);
        }
    }
}

Der Aufruf


        #region Comparer
        static void Comparerdemo()
        {
            List<Mensch> liste = new List<Mensch>();
            liste.Add(new Mensch(8, "Ratlos", "Rudi"));
            liste.Add(new Mensch(7, "Sorglos", "Stefan"));
            liste.Add(new Mensch(3, "Rielos", "Lotte"));
            liste.Add(new Mensch(1, "Sinnlos", "Susi"));
            // Normale Ausgabe
            foreach (Mensch m in liste)
            {
                Console.WriteLine(m);
            }
            // Sortieren mithilfe des Comparers
            MenschComparer mc = new MenschComparer();
            liste.Sort(mc);
            foreach (Mensch m in liste)
            {
                Console.WriteLine(m);
            }
        } 
        #endregion

wg / 4. April 2021



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.



V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/cs_Comparer.html