Csharp/C Sharp by API/System.Collections.Generic/IComparer
implements IComparer
<source lang="csharp">
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.rupareTo(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); } }
}
</source>