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

Thông tin cơ bản

Tiêu đề Lập trình ứng dụng quản lý C#.NET LINQ
Trường học University of Information Technology
Chuyên ngành C#.NET Programming
Thể loại Bài tập
Năm xuất bản 2018
Thành phố Ho Chi Minh City
Định dạng
Số trang 35
Dung lượng 1,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các hàm tạo dữ liệuRange:tạo 1 dãy số nguyên liên tiếp Các hàm tạo dữ liệu tt Repeat: tạo 1 dãy số chỉ chứa duy nhất 1 giá trị Empty:tạo 1 dãy số có 0 phần tử... Các hàm phân hoạch dữ li

Trang 1

C#.NETLINQ (tt)

Trang 3

Query syntax - let

let parts = l.Split( ';' )

where parts[0] == server

select new {

Server = parts[0], Url = parts[1]

};

Trang 4

Query syntax – join

Có ý nghĩa như phép kết bảng trong cơ

where m.IsStatic == true

orderby m.Name [descending]

select m.Name;

Trang 5

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 nữa

Query Syntax – group… by (tt)

Group nhiều thuộc tính

Trang 6

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

Trang 7

Query Syntax

Các from có thể được viết lồng nhau

var query =

from list in lists

from num in list

Trang 8

Lambda Syntax

 Bản chất của LINQ là các lệnh truy vấn được

viết dưới dạng lambda syntax

 Query syntax dễ đọc, dễ hiểu hơn so với

lambda syntax

 Khi thực thi, query syntax sẽ được compiler

chuyển về lambda sysntax

 Dùng lambda syntax mới có thể tận dụng

được hết sức mạnh của LINQ

Lambda Syntax (tt)

 Các truy vấn LINQ được viết bằng query

syntax hoàn toàn có thể được biểu diễn dưới

dạng lambda syntax

 Không có chiều ngược lại

 Nên kết hợp query syntax & lambda syntax

Trang 11

Phép chiếu

Select

Query Syntax

var query= from c in GetCustomers()

where c.City.StartWith( “A” ) select new { c.City, c.ContactName };

Lambda Syntax

var query = GetCustomers()

Where (c => c.City.StartWith( “A” )) Select(c => new { c.City,

var query = numbers

.Select ((n, idx) => new {idx, n})

Where (item => item.idx % 2 == 0);

Trang 12

Phép chiếu SelectMany

SelectMany: dùng “phẳng hoá” tập hợp

Phép chiếu SelectMany (tt)

Trang 13

Phép chiếu SelectMany (tt)

Phép chiếu SelectMany (tt)

Trang 14

new { s.CouncilCode, s.PostCode }

equals new { h.CouncilCode,

h.PostCode }

select s;

Trang 15

Phép kết Join trên nhiều thuộc tính (tt)

Lambda Syntax:

var query =

ShoppingMalls.Join(

Houses,

s => new { s.CouncilCode, s.PostCode },

h => new { h.CouncilCode, h.PostCode },

(s,h) => s

);

Phép toán sắp xếp

OrderBy, OrderByDescending

Trang 18

I = grpRow.Count()

Trang 19

GroupBy (c => new { c.CategoryID, c.CategoryName })

Select (grpRow => new {

grpRow.Key.CategoryID, grpRow.Key.CategoryName,

I = grpRow.Count()

}

);

Phép gom nhóm (tt)

Trang 20

Các hàm tạo dữ liệu

Range:tạo 1 dãy số nguyên liên tiếp

Các hàm tạo dữ liệu (tt)

Repeat: tạo 1 dãy số chỉ chứa duy nhất 1 giá trị

Empty:tạo 1 dãy số có 0 phần tử

Trang 21

 Dùng để kiểm tra dãy có chứa phần tử nào thoả điều

kiện X hay không?

Trang 22

Các hàm tạo dữ liệu (tt)

All

 Dùng để kiểm tra dãy có phải tất cảphần tử của dãy

đều thoả điều kiện X hay không?

Các hàm phân hoạch dữ liệu

Take: lấy n phần tử đầu tiên trong dãy

Skip: bỏ qua n phần tử đầu tiên trong dãy, lấy từ phần

tử thứ (n+1)

Trang 23

Các hàm phân hoạch dữ liệu (tt)

TakeWhile: lấy các phần tử đầu cho tới khi thoả điều

First: lấy phần tử đầu tiên trong dãy, “thảy”

InvalidOperationExceptionkhi dãy rỗng

Trang 24

Các hàm truy xuất phần tử

First: lấy phần tử đầu tiên trong dãy, “thảy”

InvalidOperationExceptionkhi dãy rỗng

Các hàm truy xuất phần tử (tt)

FirstOrDefault: tương tự như First nhưng trả về null&

ko “thảy” exception khi dãy rỗng

Last, LastOrDefault

Trang 25

Các hàm truy xuất phần tử (tt)

Single:

 Trả về duy nhất 1 item trong dãy có duy nhất 1 phần

tử

 “Thảy” exception khi dãy có nhiều hơn 1 phần tử

 Dùng Singleđể ép dãy có 1 phần tử về đối tượng cụ

thể

Các hàm truy xuất phần tử (tt)

Single:

Trang 26

Các hàm truy xuất phần tử (tt)

First trả về phần tử đầu tiên trong dãy có >=1

phần tử

Single ép dãy có duy nhất 1 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

Take(1) trả về 1 dãy có 1 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 trong dãy

Trang 30

Các hàm xử lý tập hợp (tt)

Except : lấy các phần tử thuộc dãy 1 & không

chứa phần giao của 2 dãy

Các hàm xử lý thống kê

Count : trả về số lượng phần tử có trong dãy

Có thể chỉ định điều kiện Count

Trang 32

Các hàm xử lý thống kê (tt)

Sum: tính tổng của dãy

Có thể chỉ định thuộc tính để tính tổng

Các hàm chuyển kiểu dữ liệu

ToList, ToArray: chuyển kết quả truy vấn sang List,

Array

Trang 33

Các hàm chuyển kiểu dữ liệu (tt)

ToDictionary: chuyển kết quả truy vấn sang Dictionary,

khi dùng hàm này cần chỉ định thuộc tính KEYcho

Dictionary

Các hàm chuyển kiểu dữ liệu (tt)

OfType: lấy ra các phần tử thuộc kiểu dữ liệu nào đó

trong dãy

Trang 34

Cho mảng {"zero", "one", "two", "three", "four",

"five", "six", "seven", "eight", "nine"} Tìm tất cả

các số có số ký tự trong tên nhỏ hơn giá trị (vd:

six có số ký tự là 3 < 6)

Cho mảng: { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 } Hãy cho

biết mỗi số có ở đúng vị trí nếu mảng được sắp

xếp hay không (giá trị có bằng index hay không)

Luyện tập Query (tt)

Cho mảng {"zero", "one", "two", "three", "four",

"five", "six", "seven", "eight", "nine"} Liệt kê các

phần tử <5 về giá trị

Cho mảng A: { 0, 2, 4, 5, 6, 8, 9 } và mảng B: { 1,

3, 5, 7, 8 } Liệt kê tất cả các cặp phần tử từ A <

phần tử từ B (vd: 0<1, 0<3,…)

Cho mảng: { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 } Hãy liệt

kê theo nhóm các phần tử đồng dư với 5

Cho mảng: { "blueberry", "chimpanzee", "abacus",

"banana", "apple", "cheese" } Hãy liệt kê các

Trang 35

Luyện tập Query (tt)

Cho mảng: { "cherry", "apple", "blueberry" } Hãy sắp

xếp theo alphabet

Với mảng ở trên hãy sắp xếp theo độ dài chuỗi

Cho mảng: { "aPPLE", "AbAcUs", "bRaNcH",

"BlUeBeRrY", "ClOvEr", "cHeRry" } Hãy sắp xếp theo

alphabet không kể Hoa thường

Cho mảng: { "zero", "one", "two", "three", "four", "five",

"six", "seven", "eight", "nine" } Hãy sắp xếp theo

alphabet rồi sắp xếp theo độ dài chuỗi giảm dần

Cho mảng: { "from ", " salt", " earn ", " last ", " near

", " form " } Hãy gom nhóm các chuỗi giống nhau về

ký tự (ví dụ: “earn ” và “ near ”)

Hãy gom nhóm SinhVien [HoTen, NgaySinh] theo

năm sinh và theo tháng sinh

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

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

TÀI LIỆU LIÊN QUAN