LINQ truy vấn dựa trên các loại chung chung, mà đã được giới thiệu trong phiên bản 2.0 của NET Framework. Bạn không cần phải có kiến thức chuyên sâu của generics trước khi bạn có thể bắt đầu viết các truy vấn. Tuy nhiên, bạn có thể muốn hiểu hai khái niệm cơ bản:
1. Khi bạn tạo một thể hiện của một lớp học tập chung chung như List , bạn thay thế chữ "T" với các loại đối tượng mà danh sách sẽ tổ chức. Ví dụ, một danh sách các chuỗi được thể hiện như danh sách , và một danh sách các đối tượng khách hàng được thể hiện như List . Một danh sách chung là kiểu mạnh và cung cấp nhiều lợi ích qua các bộ sưu tập lưu giữ các phần tử của họ như là đối tượng. Nếu bạn cố gắng thêm một khách hàng đến một danh sách , bạn sẽ nhận được một lỗi khi biên dịch. Nó rất dễ sử dụng bộ sưu tập chung bởi vì bạn không phải thực hiện thời gian chạy.
2. IEnumerable là interface cho phép các classes được liệt kê bằng cách sử dụng câu lệnh foreach. Generic collection classes hỗ trợ IEnumerable giống như các lnon-generic collection classes hỗ trợ ArrayList IEnumerable.
IEnumerable truy vấn biến trong LINQ
Biến LINQ truy vấn được gõ như IEnumerable hoặc một loại có nguồn gốc như IQueryable . Khi bạn thấy một biến truy vấn được gõ như IEnumerable , nó có nghĩa là các truy vấn, khi nó được thực thi, sẽ tạo ra một chuỗi số không hoặc nhiều đối tượng khách hàng.
IEnumerable
from cust in customers
where cust.City == "London"
select cust;
foreach (Customer customer in customerQuery)
{
Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}
Xử lý cho phép các trình biên dịch Generic Type Declarations
Nếu bạn thích, bạn có thể tránh cú pháp bằng cách sử dụng từ khóa var. Các từ khóa var chỉ thị các trình biên dịch để suy ra các loại của một biến truy vấn bằng cách nhìn vào các nguồn dữ liệu quy định tại các từ khoản. Ví dụ sau đây tạo ra các mã được biên dịch giống như các ví dụ trước:
var customerQuery2 = from cust in customers
where cust.City == "London"
select cust;
foreach(var customer in customerQuery2)
{
Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}
Các từ khóa var rất hữu ích khi các loại biến rõ ràng hoặc khi nó không phải là quan trọng để xác định rõ ràng chung chung kiểu lồng nhau như những người được sản xuất bởi các truy vấn nhóm. Nói chung, chúng tôi khuyên rằng nếu bạn sử dụng var, nhận ra rằng nó có thể làm cho mã của bạn khó khăn hơn cho những người khác để đọc.
DangTrung
Không có nhận xét nào:
Đăng nhận xét