Bài tập C#

Phân trang dữ liệu với Skip và Take trong C#

Trong bài học này, bạn sẽ lấy ra dữ liệu của một trang cụ thể trong danh sách bằng Skip và Take của LINQ.

Giới thiệu

Khi có nhiều dữ liệu, ứng dụng thường hiển thị theo từng trang, ví dụ mỗi trang 10 sản phẩm. LINQ cung cấp hai phương thức Skip để bỏ qua một số phần tử đầu và Take để lấy một số phần tử tiếp theo, kết hợp lại thành phân trang.

Với số trang bắt đầu từ 1, số phần tử cần bỏ qua là (page - 1) * size. Ở trang 2 với mỗi trang 3 phần tử, chương trình bỏ qua 3 phần tử đầu rồi lấy 3 phần tử tiếp theo là 4, 5, 6. Trong thực tế, bạn nên sắp xếp dữ liệu trước khi phân trang để thứ tự các trang luôn ổn định.

Ví dụ C# chạy được

C#
Chạy code →
Program.cs
using System;
using System.Linq;
class Program
{
    static void Main()
    {
        int page = 2, size = 3;
        var items = Enumerable.Range(1, 10).Skip((page - 1) * size).Take(size);
        Console.WriteLine(string.Join(", ", items));
    }
}
Kết quả khi chạy
4, 5, 6

Luyện tập với trình gỡ lỗi

Đặt breakpoint ở một phép gán hoặc điều kiện quan trọng, bấm Debug và xem giá trị các biến cục bộ (local variable) trước khi bước sang dòng tiếp theo.

Luyện tập với thử thách

Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.

Tất cả thử thách