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

Từ khóa orderby trong C#


Giới thiệu

Từ khóa orderby trong LINQ query syntax dùng để sắp xếp các phần tử trong tập hợp theo thứ tự tăng dần (ascending - mặc định) hoặc giảm dần (descending).

Ví dụ cơ bản

List chuỗi:

List myList = new List();
myList.Add("truck");
myList.Add("bus");
myList.Add("bicycle");
myList.Add("motorbike");

Sắp xếp theo độ dài chuỗi tăng dần:

var myLen = from element in myList
            orderby element.Length
            select element;

Sắp xếp giảm dần:

var myLen = from element in myList
            orderby element.Length descending
            select element;

Ví dụ hoàn chỉnh

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

class Demo
{
    static void Main()
    {
        List myList = new List();
        myList.Add("truck");
        myList.Add("bus");
        myList.Add("bicycle");
        myList.Add("motorbike");

        // Tăng dần
        var myLen = from element in myList
                    orderby element.Length
                    select element;
        Console.WriteLine("Thứ tự tăng dần...");
        foreach (string str in myLen)
        {
            Console.WriteLine(str);
        }

        // Giảm dần
        myLen = from element in myList
                orderby element.Length descending
                select element;
        Console.WriteLine("Thứ tự giảm dần...");
        foreach (string str in myLen)
        {
            Console.WriteLine(str);
        }
    }
}

Kết quả

Thứ tự tăng dần...
bus
truck
bicycle
motorbike
Thứ tự giảm dần...
motorbike
bicycle
truck
bus

Sắp xếp đa cấp (ThenBy)

Trong query syntax, dùng dấu phẩy để sắp xếp thứ cấp:

var sorted = from e in list
             orderby e.LastName, e.FirstName
             select e;

Tương đương method syntax: list.OrderBy(e => e.LastName).ThenBy(e => e.FirstName)

Lưu ý

  • orderby chỉ dùng trong query syntax. Method syntax dùng OrderBy() và OrderByDescending().
  • Sắp xếp ổn định (stable sort): các phần tử bằng nhau giữ nguyên thứ tự tương đối.
  • Có thể sắp xếp theo nhiều trường bằng cách phân cách bằng dấu phẩy.