[C#] LINQ trong CSharp - Phần một
LINQ là gì ? LINQ là viết tắt của cụm từ Language - Integrated Query. Tạm dịch là Ngôn ngữ có tích hợp truy vấn. Là một tập hợp các từ khóa trong C# và VB.Net, được dùng để truy vấn các nguồn dữ liệu khác nhau. Nói cách khác, với cùng một cú pháp trong LINQ, ta có thể truy vấn đến nhiều nguồn dữ liệu khác nhau như: object, XML, SQL, v.v... Đồng thời có thể dùng các phương thức sắp xếp, chọn lọc, gộp nhóm,... rất dễ dàng.
I. Đặc điểm:
- LINQ đơn giản hóa việc truy vấn dữ liệu.
- Các biến LINQ query thường được khai báo có kiểu là IEnumerable và IQueryable
- Khi kiểu dữ liệu trả về chưa được định nghĩa (kiểu vô danh), vẫn có thể sử dụng từ khóa var để thay thế biến kiểu generic.
II. Các phương thức mở rộng hỗ trợ LINQ (căn bản):
- Filtering LINQ (lọc):
- Where: Lọc dữ liệu trong tập hợp dựa trên điều kiện cụ thể:
- Distinct: Trả về các element riêng biệt (không trùng) từ một sequence:
- Take: Trả về con số element (số dòng) cụ thể liên tục liền kề tính từ vị trí bắt bắt đầu của sequence:
- TakeWhile: Trả về con số element của tập hợp thỏa mãn điều kiện cụ thể:
Lưu ý: p.thức này thường dùng với hành động sắp xếp trước đó.
- Skip: Bỏ qua số element xác định và trả về số element còn lại trong sequence:
Lưu ý: trong LINQ to Entities, Skip thường kết hợp với Take để phân trang dữ liệu (Data Paging).
- SkipWhile: Bỏ qua số element thỏa mãn điều kiện xác định và trả về số element còn lại trong sequence:
Lưu ý: p.thức này thường dùng với hành động sắp xếp trước đó.
- Projecting LINQ (phép chiếu):
- Select: Chọn các thuộc tính của element để tạo ra một kiểu mới:
- SelectMany: Chọn các thuộc tính của element để tạo ra kiểu IEnumerable và chuyển các kết quả sequence thành một sequence:
- Joining LINQ (kết nối):
- Join: Kết hợp các element của 2 sequence dựa trên khóa tương xứng:
- GroupJoin: Kết hợp các element của 2 sequence dựa trên khóa tương đương và nhóm lại thành một kết quả. Tương đương với cú pháp Query syntax là join ... into.
- Ordering LINQ (sắp xếp):
- OrderBy: Sắp xếp các element theo thứ tự tăng dần theo khóa khai báo:
Xem tiếp Phần hai !