Csharp/CSharp Tutorial/LINQ/ThenBy
First ThenBy Prototype
<source lang="csharp">using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {
public static void Main() { string[] presidents = {"ant", "arding", "arrison", "eyes", "over", "Jackson"}; IEnumerable<string> items = presidents.OrderBy(s => s.Length).ThenBy(s => s); foreach (string item in items) Console.WriteLine(item); }
}</source>
Using an OrderBy and a ThenBy clause with a custom comparer to sort first by word length and then by a case-insensitive descending sort of the words in an array.
<source lang="csharp">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.rupare(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); } }
}</source>