Ngôn ngữ LINQ - Thực thi ngay lập tức

Thực thi truy vấn LINQ

Có hai kịch bản thực thi truy vấn LINQ:

  • Trì hoãn thực thi truy vấn LINQ (Deferred Execution of LINQ Query).
  • Thực thi ngay lập tức truy vấn LINQ (Immediate Execution of LINQ Query).

 Thực thi ngay lập tức truy vấn LINQ

Thực hiện ngay lập tức thì trái ngược với trì hoãn thực thì. Nó buộc truy vấn LINQ thực thi và nhận kết quả ngay lập tức. Các toán tử chuyển đổi To thực hiện truy vấn đã cho và đưa ra kết quả ngay lập tức.

Cú pháp phương thức

Trong ví dụ sau, phương thức mở rộng ToList() thực hiện truy vấn ngay lập tức và trả về kết quả.

IList<Student> teenAgerStudents = studentList
    .Where(s => s.age > 12 && s.age < 20)
    .ToList();

Cú pháp truy vấn

var teenAgerStudents = from s in studentList
                       where s.age > 12 && s.age < 20
                       select s;

Các truy vấn trên sẽ không thực hiện ngay lập tức. Bạn sẽ không tìm thấy bất kỳ kết quả nào như hình dưới đây:

Thực thi ngay lập tức truy vấn LINQ

Cú pháp truy vấn không hỗ trợ toán tử 'To' nhưng có thể sử dụng phương thức ToList(), ToArray() hoặc ToDictionary() để thực thi ngay lập tức như dưới đây:

IList<Student> teenAgerStudents = (from s in studentList
                                   where s.age > 12 && s.age < 20
                                   select s).ToList();

Bạn có thể xem kết quả trong danh sách teenAgerStudents như sau:

Thực thi ngay lập tức truy vấn LINQ