Use IComparer : Compare « Collections Data Structure « C# / C Sharp






Use IComparer

Use IComparer
/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/

// Use IComparer. 
 
using System; 
using System.Collections; 
 
// Create an IComparer for Inventory objects. 
class CompInv : IComparer { 
  // Implement the IComparable interface. 
  public int Compare(object obj1, object obj2) { 
    Inventory a, b; 
    a = (Inventory) obj1; 
    b = (Inventory) obj2; 
    return a.name.CompareTo(b.name); 
  } 
} 
 
class Inventory { 
  public 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); 
  } 
} 
 
public class MailList { 
  public static void Main() { 
    CompInv comp = new CompInv(); 
    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 using an IComparer. 
    inv.Sort(comp); 
 
    Console.WriteLine("Inventory list after sorting:"); 
    foreach(Inventory i in inv) { 
      Console.WriteLine("   " + i); 
    } 
  } 
}


           
       








Related examples in the same category

1.implements the IComparable interfaceimplements the IComparable interface
2.Implement IComparableImplement IComparable
3.Sorting and Searching:Advanced Use of HashesSorting and Searching:Advanced Use of Hashes
4.Sorting and Searching:Using IComparerSorting and Searching:Using IComparer
5.Sorting and Searching:Implementing IComparableSorting and Searching:Implementing IComparable
6.Sorting and Searching:IComparer as a PropertySorting and Searching:IComparer as a Property