Mega Code Archive

 
Categories / C# / Collections Data Structure
 

Implement IComparable

/* C#: The Complete Reference  by Herbert Schildt  Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Implement IComparable.    using System;  using System.Collections;    class Inventory : IComparable {    string name;    double cost;    int onhand;      public Inventory(string n, double c, int h) {      name = n;      cost = c;      onhand = h;    }      public override string ToString() {      return        String.Format("{0,-10}Cost: {1,6:C}  On hand: {2}",                      name, cost, onhand);    }      // Implement the IComparable interface.    public int CompareTo(object obj) {      Inventory b;      b = (Inventory) obj;      return name.CompareTo(b.name);    }  }    public class IComparableDemo {    public static void Main() {      ArrayList inv = new ArrayList();            // Add elements to the list      inv.Add(new Inventory("Pliers", 5.95, 3));      inv.Add(new Inventory("Wrenches", 8.29, 2));         inv.Add(new Inventory("Hammers", 3.50, 4));      inv.Add(new Inventory("Drills", 19.88, 8));        Console.WriteLine("Inventory list before sorting:");      foreach(Inventory i in inv) {        Console.WriteLine("   " + i);      }      Console.WriteLine();        // Sort the list.      inv.Sort();        Console.WriteLine("Inventory list after sorting:");      foreach(Inventory i in inv) {        Console.WriteLine("   " + i);      }    }  }