static void Main()
    {
        List <string> left = new List <string> {
            "Alice", "Charles", "Derek"
        };
        List <string> right = new List <string> {
            "Bob", "Charles", "Ernie"
        };

        EnumerableExtensions.CompareSortedCollections(left, right, StringComparer.CurrentCultureIgnoreCase,
                                                      s => Console.WriteLine("Left: " + s), s => Console.WriteLine("Right: " + s), (x, y) => Console.WriteLine("Both: " + x + y));
    }