Trong bài viết kỳ trước chúng ta đã làm quen với khái niệm Linq với ứng dụng conversion đơn giản – chuyển đổi giữa các kiểu dữ liệu collection. Với bài viết hôm nay ta sẽ tìm hiểu một dạng ép kiểu mở rộng (Casting Extension) ứng dụng từ Linq. Linq với khả năng ép kiểu mở rộng giúp người lập trình dễ dàng hơn trong việc chuyển đổi giữa các kiểu dữ liệu. Không chỉ dừng lại ở việc chuyển đổi các kiểu dữ liệu thông thường, Linq hỗ trợ chuyển đổi từ từ một instance của class này sang class khác, và hiển nhiên điều kiện bắt buộc là phải có sự tương quan giữa 2 class này.
Casting Extension
Trong ví dụ này đầu tiên ta khai báo class A với 2 phương thức _a() và _a2(). Class B được kế thừa từ class A. Trong chương trình đầu tiên ta tạo mảng đối tượng B với 3 phần tử, sau đó lần lượt cấp phát vùng nhớ. Tiếp theo dùng phương thức Cast<> để chuyển đổi mảng đối tượng A thành tập hợp các đối tượng B. Như vậy ban đầu từ một tập hợp đối tượng có tính thứ tự phải truy xuất qua chỉ số (index) ta có thể chuyển qua một tập hợp đối tượng không có thứ tự và truy xuất thông qua foreach. Các đối tượng sau khi ép kiểu vẫn có thể sử dụng …..
