Mega Code Archive

 
Categories / C# by API / System Collections Generic
 

Implements IComparer

using System;  using System.Collections.Generic;    // Create an IComparer<T> for Product objects.  class ProductComparer<T> : IComparer<T> where T : Product {      // Implement the IComparer<T> interface.    public int Compare(T obj1, T obj2) {      return obj1.name.CompareTo(obj2.name);    }    }    class Product {    public string name;    double cost;    int onhand;      public Product(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);    }  }    class MainClass {    public static void Main() {      ProductComparer<Product> comp = new ProductComparer<Product>();      List<Product> inv = new List<Product>();            // Add elements to the list      inv.Add(new Product("A", 5.5, 3));      inv.Add(new Product("B", 8.9, 2));         inv.Add(new Product("C", 3.0, 4));      inv.Add(new Product("D", 1.8, 8));        Console.WriteLine("Product list before sorting:");      foreach(Product i in inv) {        Console.WriteLine("   " + i);      }      Console.WriteLine();        // Sort the list using an IComparer.      inv.Sort(comp);        Console.WriteLine("Product list after sorting:");      foreach(Product i in inv) {        Console.WriteLine("   " + i);      }    }  }