Linq « MicrosoftTech.Net

Linq & Casting Extension

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 …..

Linq & Conversion

Trong bài viết hôm nay chúng ta sẽ làm quen với một khái niệm mới là Linq (Language Integrated Query) – Hiểu một cách đơn giản Linq là một ngôn ngữ có khả truy vấn dữ liệu trên nhiều loại dữ liệu khác nhau. Cách thức truy vấn của Linq “rất tự nhiên” – uyển chuyển, thân thiện trong môi trường lập trình. Một tình năng mạnh của Linq là khả năng chuyển đổi giữa các kiểu dữ liệu với nhau, khả năng này thể hiện vượt trội khi thao tác với các kiểu dữ liệu collection…

1. ToArray Extension Method Trong ví dụ bên dưới thực hiện việc copy dữ liệu từ một array sang một array khác một cách dễ dàng thông qua truy vấn Linq. Ban đầu với một array int[] được khởi tạo giá trị ngẫu nhiên. Sau đó dùng truy vấn:

var query = from element in array1 orderby element select element;

để “gom” tất cả phần tử trong array vào trong biến var query; Từ đó dùng phương thức ToArray() để Convert sang array và đổ dữ liệu vào một array khác.

2. ToList Extension Method Trong ví dụ thứ 2 chỉ đơn giản là phương thức chuyển đổi từ từ kiểu dữ liệu array string[] sang một genericthông qua phương thức ToList(); được hỗ trợ từ thư viện Linq. Với sự hỗ trợ mạnh mẽ của Linq ta dễ dàng chuyển đổi …..