Csharp/CSharp Tutorial/LINQ/ThenBy

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

First ThenBy Prototype

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);
    }
}

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.

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);
        }
    }
}