Để 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