Csharp/CSharp Tutorial/LINQ/ThenBy

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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>