Use custom IComparer with ThenBy clause in CSharp

Description

The following code shows how to use custom IComparer with ThenBy clause.

Example


//from w  ww  .j ava 2s.  co  m
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class CaseInsensitiveComparer : IComparer<string> {
    public int Compare(string x, string y) {
        return string.Compare(x, y, true);
    }
}

public class MainClass {
    public static void Main() {

        string[] words = { "a", "A", "b", "B", "C", "c" };

        var sortedWords =
            words.OrderBy(a => a.Length)
                    .ThenByDescending(a => a, new CaseInsensitiveComparer());

        foreach (var s in sortedWords) {
            Console.WriteLine(s);
        }
    }
}

The code above generates the following result.





















Home »
  C# Tutorial »
    LINQ »




Operator
Select
Where
OrderBy
Group
Join
Let
LINQ