Comparer Class

Overview

Good practice

  • When possible, use the generic version of IComparer<T> and Comparer<T>.

Examples

Compare Strings

// Returns 0 when equal, -1 when a < b and 1 when a > b
Console.WriteLine("Is a equal to b? {0}", Comparer.DefaultInvariant.Compare("a", "b"));

Reverse Sort

public class Program
{
    static void Main(string[] args)
    {
        ArrayList a = new ArrayList();
        a.AddRange(new string[] { "Hello", "World", "Aloha" });
        a.Sort();
        foreach (var s in a) { Console.WriteLine(s); }
        a.Sort(new ReverseSort());
        foreach (var s in a) { Console.WriteLine(s); }
    }
}
 
public class ReverseSort : IComparer
{
    public int Compare(object x, object y)
    {
        return y.ToString().CompareTo(x.ToString());
    }
}