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
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));
}
}
4, 5, 6Luyện tập với trình gỡ lỗi
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