Hướng dẫn này sẽ giới thiệu cho bạn những kiến thức cơ bản về LINQ framework và cung cấp cho bạn bản tóm tắt về kiến trúc LINQ, trình cung cấp dữ liệu và cấu trúc truy vấn.
- int[] numbers = { 3, 6, 7, 9, 2, 5, 3, 7 };
- int i = 0;
- // Display numbers larger than 5
- while (i < numbers.GetLength(0))
- {
- if (numbers[i] > 5)
- Console.WriteLine(numbers[i]);
- ++i;
- }
May mắn thay, LINQ đã đến giải cứu và biến đoạn mã như trên trở thành dĩ vãng. Với LINQ, các nguồn dữ liệu giờ đây có thể được truy vấn theo cú pháp giống SQL , như được hiển thị trong đoạn mã được viết lại bên dưới:
- int[] numbers = { 3, 6, 7, 9, 2, 5, 3, 7 };
- var res = from n in numbers
- where n > 5
- select n;
- foreach (int n in res)
- Console.WriteLine(n);
Bạn sẽ nhận ra nhiều câu lệnh SQL tương tự trong LINQ, như Select, Where, Distinct và Group By.
Bạn có thể quan tâm đến việc truy vấn dữ liệu từ nhiều nguồn khác nhau, chẳng hạn như mảng, từ điển, xml và các thực thể được tạo từ khung thực thể. Nhưng thay vì phải sử dụng một API khác nhau cho mỗi nguồn dữ liệu, LINQ cung cấp một mô hình lập trình nhất quán và thống nhất để làm việc với tất cả các nguồn dữ liệu được hỗ trợ. Nói cách khác, truy vấn LINQ để tìm nạp một phần tử từ một mảng và một tệp xml sẽ trông rất giống nhau.
Một số nguồn dữ liệu LINQ được sử dụng nhiều nhất, tất cả đều là một phần của .NET framework, là:
Miễn là bạn bao gồm không gian tên System.Linq trong mã của mình, bạn có thể sử dụng tất cả các nguồn dữ liệu trên.
Bạn có thể sử dụng LINQ từ tất cả các ngôn ngữ .NET phổ biến (C #, VB.NET và F#) như được minh họa trong tổng quan kiến trúc bên dưới. Các ngôn ngữ có thể truy vấn bất kỳ Nguồn dữ liệu LINQ nào, với sự trợ giúp của lớp được gọi là Truy vấn tích hợp ngôn ngữ .NET (LINQ).
- int[] numbers = { 7, 53, 45, 99 };
- var res = from n in numbers
- where n > 50
- orderby n
- select n.ToString();
Biểu thức truy vấn luôn bắt đầu bằng "từ phần tử trong bộ sưu tập" và lặp qua từng phần tử trong bộ sưu tập. Giống như trong các câu lệnh SQL, bạn có thể lọc hoặc chiếu thêm truy vấn của mình, như chúng tôi đã làm với where , orderby và select . Câu lệnh cuối cùng, "select n.ToString ()" chiếu kết quả cuối cùng thành các chuỗi (“53” và “99”).
Bạn cũng có thể viết nó dưới dạng một biểu thức Lambda, như đã đề cập trước đó. Sau đó, bạn nhận được một cấu trúc giống như phương thức:
- int[] numbers = { 7, 53, 45, 99 };
- var res = numbers.Where(n => n > 50)
- .OrderBy(n => n)
- .Select(n => n.ToString());
" N => n…" tạo ra một thể hiện của mỗi phần tử được lặp lại trong tập hợp. Ở phía bên trái của "=>" là các tham số đầu vào và ở phía bên kia là biểu thức.
Tôi hy vọng hướng dẫn này hữu ích trong việc giới thiệu cho bạn về LINQ <3
Đăng nhận xét