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

Sắp xếp List trong C#


Để sắp xếp List<T> trong C#, sử dụng phương thức Sort() của List.

Ví dụ cơ bản

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        var cars = new List { "Mercedes", "Audi", "Jaguar" };
        
        Console.WriteLine("Mảng gốc:");
        foreach (var name in cars)
            Console.WriteLine(name);
        
        // Sắp xếp mặc định (A-Z cho string)
        cars.Sort();
        
        Console.WriteLine("\nMảng đã sắp xếp:");
        foreach (var name in cars)
            Console.WriteLine(name);
    }
}

Kết quả

Mảng gốc:
Mercedes
Audi
Jaguar

Mảng đã sắp xếp:
Audi
Jaguar
Mercedes

Các cách sắp xếp nâng cao

1. Sắp xếp giảm dần

cars.Sort();
cars.Reverse(); // Hoặc
cars.Sort((a, b) => b.CompareTo(a));

2. Custom Comparer

// Sắp xếp theo độ dài chuỗi
cars.Sort((a, b) => a.Length.CompareTo(b.Length));

// Sắp xếp đối tượng phức tạp
class Car { public string Name; public int Year; }
var cars = new List { ... };
cars.Sort((a, b) => a.Year.CompareTo(b.Year));

3. IComparer<T>

public class CarNameComparer : IComparer
{
    public int Compare(Car x, Car y) => x.Name.CompareTo(y.Name);
}

cars.Sort(new CarNameComparer());

4. LINQ (tạo list mới, không sửa gốc)

var sorted = cars.OrderBy(c => c.Name).ToList();
var sortedDesc = cars.OrderByDescending(c => c.Year).ToList();

Lưu ý

  • List.Sort() sắp xếp in-place (thay đổi list gốc)
  • Yêu cầu phần tử implement IComparable<T> hoặc cung cấp comparer
  • String, int, double... đã implement sẵn