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

Tuan11 c net 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

11/14/2018 Lập trình Ứng dụng quản lý C#.NET LINQ (tt) Nội dung  Query syntax  Lambda syntax  Các phép truy vấn LINQ 11/14/2018 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 } 11/14/2018 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] }; 11/14/2018 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; 11/14/2018 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 }; 11/14/2018 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) 11/14/2018 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 11/14/2018 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 11/14/2018 Nội dung  Query syntax  Lambda syntax  Các phép truy vấn LINQ Danh sách phép toán 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 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 11/14/2018 Luyện tập Query  Tìm tất phần tử

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

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN