using System;


class Antiques : IComparable
{
    public enum Categorie { Painting, Sculpture, Furniture, Book };

    Categorie categorie;
    string description;
    int year;

    public Antiques(Categorie categorie, string description, int year)
    {
        this.categorie = categorie;
        this.description = description;
        this.year = year;
    }

    // ToString() zum Ausgeben von Antiques-Objekten implementieren
    public override string ToString()
    {
        return String.Format(" {0,10}: {1} von {2}", categorie, description, year);
    }

    // Methoden von IComparable implementieren
    public int CompareTo(object obj)
    {
        Antiques a = (Antiques)obj;

        // statt aufwändiger if-Vergleiche nutze den Umstand,
        // dass System.Int32 ebenfalls IComparable implementiert
        return this.year.CompareTo(a.year);
    }

}

class Program
{
    static void Main(string[] args)
    {
        Antiques[] collection = new Antiques[5];

        collection[0] = new Antiques(Antiques.Categorie.Furniture,
                                     "Chippendale-Tisch mit Furnierschaden",
                                     1875);
        collection[1] = new Antiques(Antiques.Categorie.Painting,
                                     "Picasso-Skizze",
                                     1955);
        collection[2] = new Antiques(Antiques.Categorie.Sculpture,
                                     "Houdon-Skulptur",
                                     1887);
        collection[3] = new Antiques(Antiques.Categorie.Furniture,
                                     "Aussteuer-Truhe",
                                     1441);
        collection[4] = new Antiques(Antiques.Categorie.Book,
                                     "Brehms Tierleben, Faksimile",
                                     1979);

        Array.Sort(collection);

        foreach (Antiques obj in collection)
        {
            Console.WriteLine(obj);
        }
    }
}
