Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức ThenBy() trong C# LINQ

Phương thức ThenBy() trong LINQ được sử dụng để thực hiện sắp xếp thứ cấp (secondary sorting) trên một chuỗi các phần tử. Nó luôn được sử dụng sau OrderBy() hoặc OrderByDescending() để xác định tiêu chí sắp xếp thứ hai khi các khóa chính bằng nhau.

Ví dụ minh họa

Giả sử chúng ta có mảng chuỗi sau:

string[] str = { "AAA", "AAAA", "A", "AAAAA", "AAAAAAAAA" };

Chúng ta muốn sắp xếp trước theo độ dài chuỗi (tăng dần), sau đó sắp xếp theo thứ tự bảng chữ cái cho các chuỗi có cùng độ dài.

IEnumerable<string> res = str.AsQueryable()
    .OrderBy(alp => alp.Length)
    .ThenBy(alp => alp);

Mã nguồn hoàn chỉnh

using System;
using System.Linq;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        string[] str = { "AAA", "AAAA", "A", "AAAAA", "AAAAAAAAA" };
        IEnumerable<string> res = str.AsQueryable()
            .OrderBy(alp => alp.Length)
            .ThenBy(alp => alp);

        foreach (string arr in res)
            Console.WriteLine(arr);
    }
}

Kết quả đầu ra

A
AAA
AAAA
AAAAA
AAAAAAAAA

Giải thích: Các chuỗi được sắp xếp trước theo độ dài (1, 3, 4, 5, 9 ký tự). Với độ dài 3 ký tự, "AAA" xuất hiện trước do thứ tự bảng chữ cái.