1. Trang chủ
  2. » Công Nghệ Thông Tin

Tuan07 linq p2

35 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 1,47 MB

Nội dung

10/14/2019 Lập trình Ứng dụng quản lý LINQ part Nội dung  Query syntax  Lambda syntax  Các phép truy vấn LINQ 10/14/2019 Nội dung  Query syntax  Lambda syntax  Các phép truy vấn LINQ Query syntax  Yêu cầu truy vấn from n in list where n < select n; foreach (int n in list) { if (n < 3) //xử lý n } 10/14/2019 Query syntax - let var list = new List { 1,2,3,4,5,6,7,8,9 }; var query = from n in list where n > && n < let g = n * let newList = new List {1,2,3} from l in newList select new { l, r = g * l }; Query syntax – let (tt) var query = from l in File.ReadAllLines(path) let parts = l.Split(';') where parts[0] == server select new { Server = parts[0], Url = parts[1] }; 10/14/2019 Query syntax – join Có ý nghĩa phép kết bảng sở liệu quan hệ var query = from c in Categories join p in Products on c.CategoryID equals p.CategoryID select new {c.CategoryName, p.ProductName}; Query Syntax – orderby var query = from m in typeof(string).GetMethods() where m.IsStatic == true orderby m.Name [descending] select m.Name; 10/14/2019 Query Syntax – group… by var query = from m in typeof(string).GetMethods() where m.IsStatic == true orderby m.Name [descending] group m by m.Name;  group bao hàm ý nghĩa select nên không cần select Query Syntax – group… by (tt) Group nhiều thuộc tính var query = from p in Products join c in Categories on p.CategoryID equals c.CategoryID group p by new { c.CategoryID, c.CategoryName }; 10/14/2019 Query Syntax – group… by… into var query = from m in typeof(string).GetMethods() where m.IsStatic == true orderby m.Name [descending] group m by m.Name into gr select new { Key = gr.Key, Slg = gr.Count() }; Query Syntax – group… by… into (tt) 10/14/2019 Query Syntax Các from viết lồng var query = from list in lists from num in list select num; Nội dung  Query syntax  Lambda syntax  Các phép truy vấn LINQ 10/14/2019 Lambda Syntax  Bản chất LINQ lệnh truy vấn viết dạng lambda syntax  Query syntax dễ đọc, dễ hiểu so với lambda syntax  Khi thực thi, query syntax compiler chuyển lambda sysntax  Dùng lambda syntax tận dụng mạnh LINQ Lambda Syntax (tt)  Các truy vấn LINQ viết query syntax hồn tồn biểu diễn dạng lambda syntax  Khơng có chiều ngược lại  Nên kết hợp query syntax & lambda syntax 10/14/2019 Nội dung  Query syntax  Lambda syntax  Các phép truy vấn LINQ Danh sách phép toán 10/14/2019 Danh sách phép toán (tt) Phép chọn Where: giữ lại phần tử thoả điều kiện Query Syntax var query = from n in list where n < select n; Lambda Syntax var query = list.Where(n => n < 3); 10 10/14/2019 Các hàm tạo liệu (tt) Any  Dùng để kiểm tra dãy có rỗng hay khơng? Các hàm tạo liệu (tt) Any  Dùng để kiểm tra dãy có chứa phần tử thoả điều kiện X hay không? 21 10/14/2019 Các hàm tạo liệu (tt) All  Dùng để kiểm tra dãy có phải tất phần tử dãy thoả điều kiện X hay không? Các hàm phân hoạch liệu Take: lấy n phần tử dãy Skip: bỏ qua n phần tử dãy, lấy từ phần tử thứ (n+1) 22 10/14/2019 Các hàm phân hoạch liệu (tt) TakeWhile: lấy phần tử đầu thoả điều kiện 3, 6, 9, 12, 15, 18, 21, 24, 27, 30 SkipWhile: bỏ phần tử đầu thoả điều kiện Các hàm truy xuất phần tử First: lấy phần tử dãy, “thảy” InvalidOperationException dãy rỗng 23 10/14/2019 Các hàm truy xuất phần tử First: lấy phần tử dãy, “thảy” InvalidOperationException dãy rỗng Các hàm truy xuất phần tử (tt) FirstOrDefault: tương tự First trả null & ko “thảy” exception dãy rỗng Last, LastOrDefault 24 10/14/2019 Các hàm truy xuất phần tử (tt) Single:  Trả item dãy có phần tử  “Thảy” exception dãy có nhiều phần tử  Dùng Single để ép dãy có phần tử đối tượng cụ thể Các hàm truy xuất phần tử (tt) Single: 25 10/14/2019 Các hàm truy xuất phần tử (tt)  First trả phần tử dãy có >=1 phần tử  Single ép dãy có phần tử thành kiểu đối tượng cụ thể Khi dùng Single ta hàm ý việc kiểm tra xem dãy có chứa nhiều phần tử hay khơng?  Take(1) trả dãy có phần tử lấy từ dãy gốc Các hàm truy xuất phần tử (tt) ElementAt: lấy phần tử thứ i dãy 26 10/14/2019 DefaultIfEmpty Khi kết truy vấn dãy phần tử, DefaultIfEmpty tạo phần tử mặc định cho dãy NULL (Kết dãy có phần tử, phần tử = null) DefaultIfEmpty (tt) Tự định nghĩa phần tử mặc định 27 10/14/2019 Các hàm xử lý tập hợp Union: kết hợp dãy kiểu liệu lại & loại bỏ phần tử trùng { 1, 2, 3, 4, 5, } Các hàm xử lý tập hợp (tt) Concat: kết hợp dãy kiểu liệu lại & không loại bỏ phần tử trùng { 1, 2, 3, 3, 4, 5, } 28 10/14/2019 Các hàm xử lý tập hợp (tt) Distinct: loại bỏ phần tử trùng dãy Các hàm xử lý tập hợp (tt) Intersect: lấy phần giao dãy có kiểu liệu 29 10/14/2019 Các hàm xử lý tập hợp (tt) Except: lấy phần tử thuộc dãy & không chứa phần giao dãy Các hàm xử lý thống kê Count: trả số lượng phần tử có dãy Có thể định điều kiện Count 30 10/14/2019 Các hàm xử lý thống kê (tt) Min, Max: trả phần tử nhỏ nhất, lớn dãy Có thể định thuộc tính để lấy min, max double maxPrice = Products.Max(p => p.UnitPrice) Các hàm xử lý thống kê (tt) Average: tính giá trị trung bình dãy Có thể định thuộc tính để tính trung bình 31 10/14/2019 Các hàm xử lý thống kê (tt) Sum: tính tổng dãy Có thể định thuộc tính để tính tổng Các hàm chuyển kiểu liệu ToList, ToArray: chuyển kết truy vấn sang List, Array 32 10/14/2019 Các hàm chuyển kiểu liệu (tt) ToDictionary: chuyển kết truy vấn sang Dictionary, dùng hàm cần định thuộc tính KEY cho Dictionary Các hàm chuyển kiểu liệu (tt) OfType: lấy phần tử thuộc kiểu liệu dãy “That”, “This” 33 10/14/2019 Luyện tập Query  Tìm tất phần tử

Ngày đăng: 09/04/2023, 06:29

w