23
Click to edit Master subtitle style COLLECTION 1

COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Click to edit Master subtitle style

COLLECTION

1

Page 2: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Collection – Khái niệm List Dictionary Thực hành

NỘI DUNG

2

Page 3: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

COLLECTION – KHÁI NIỆM

3

Page 4: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Collection – Khái niệm

Collection là các lớp đặc biệt hỗ trợ trong việc lưu trữ và thu hồi dữ liệu Bao gồm các lớp và Interface hữu dụng Một số lớp thường được dùng: List, Dictionary, Stack, Queue, ... Ta sẽ tập trung tìm hiểu về List và Dictionary

4

Page 5: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

LIST

5

Page 6: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

List – Danh sách

Trong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng) Số lượng đối tượng chứa trong List không cần được xác định trước khác biệt so với mảng VD: Danh sách số nguyên, danh sách số thực, danh sách đối tượng do người dùng định nghĩa, ... Khi định nghĩa List cần phải khai báo kiểu dữ liệu của các phần tử trong List

6

Page 7: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

List – Khai báo

7

Khai báo danh sách các số nguyên:

List<int> listOfInts = new List<int>(); Khai báo danh sách các chuỗi:

List<string> listOfStrings = new List<string>();

Page 8: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

List – Các thao tác cơ bản

8

Thao tác thêm một phần tử vào cuối danh sách: Add listOfStrings.Add("Hello World!"); Thao tác chèn một phần tử vào vị trí thứ i: Insert

listOfStrings.Insert(0, "text3"); Lưu ý: trong List, vị trí được tính bắt đầu từ 0

lệnh Insert ở trên sẽ chèn vào đầu danh sách

Page 9: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

List – Các thao tác cơ bản

9

Thao tác lấy một phần tử tại vị trí i: ElementAt(i)

string firstItem = listOfStrings.ElementAt(0); Thao tác xóa một phần tử tại vị trí thứ i: RemoveAt(i)

listOfStrings.RemoveAt(2); Thao tác xóa toàn bộ các phần tử trong danh sách listOfStrings.Clear();

Page 10: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

List – Danh sách đối tượng

10

Khai báo danh sách các đối tượng thuộc lớp Student List<Student> listOfStudents = new List<Student>(); Chèn các Student vào danh sách trên: Student studentA = new Student {name = "John"}; Student studentB = new Student {name = "Mary"} ; listOfStudents.Add(studentA); listOfStudents.Add(studentB);

Page 11: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

List – Thừa kế

11

Khai báo danh sách các đối tượng thuộc lớp Car List<Car> listOfCars = new List<Car>(); Chèn các xe vào danh sách trên: //Ford và Honda thừa kế từ lớp Car Car carA = new Ford(); Car carB = new Honda(); listOfCars.Add(carA); listOfCars.Add(carB);

Page 12: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

List – Duyệt danh sách

12

Duyệt qua từng chiếc xe trong danh sách xe và yêu cầu xe di chuyển foreach (Car car in listOfCars) car.Move();

Quan trọng: cần lưu ý khi vừa duyệt vừa xóa phần tử trong danh sách số lượng phần tử sẽ bị thay đổi động khi ta đang duyệt và dẫn đến lỗi

Page 13: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

DICTIONARY

13

Page 14: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Dictionary

Trong C#, Dictionary hoạt động với vai trò tương tự như một từ điển Bạn có một danh sách các từ và ứng với mỗi từ là định nghĩa chi tiết của từ đó

14

Page 15: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Dictionary

Thông qua Dictionary, ta sử dụng từ muốn tra (key) để tra cứu thông tin chi tiết ứng với từ đó (value) Khái niệm này gọi là các cặp key/value Kiểu dữ liệu của key/value do ta tự chọn (không giới hạn kiểu string, int, ...) VD: Nếu ta muốn tạo 1 Dictionary để lưu tên và số điện thoại của từng nhân viên:

15

Dictionary<string, int> phoneBook = new Dictionary<string, int>();

Page 16: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Dictionary

Nếu ta muốn tạo 1 Dictionary để lưu tên và số điện thoại của từng nhân viên:

16

Dictionary<string, int> phoneBook = new Dictionary<string, int>();

Key Value "John" 1234 "Toai" 9999 "Mary" 7777

Page 17: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Dictionary – Thêm phần tử

17

Thêm phần tử vào Dictionary dictionary.Add("John", 1234); dictionary.Add("Toai", 9999); dictionary.Add("Mary", 7777); Key ở đây là tên nhân viên, Value là số điện thoại của nhân viên

//Cách khác để thêm phần tử: dictionary["Obama"] = 1111;

Page 18: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Dictionary – Thêm phần tử

18

Có thể xem giá trị dictionary tại thời điểm run

Page 19: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Dictionary – Tìm phần tử

19

Tìm phần tử trong Dictionary. Chẳng hạn ta muốn tìm số điện thoại của Obama

if (dictionary.ContainsKey("Obama")) { int value = dictionary["Obama"]; Console.WriteLine("So phone cua Obama la: {0}", value); }

Page 20: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Dictionary – Xóa phần tử

20

Xóa một phần tử trong Dictionary. //Xóa số phone của Obama dictionary.Remove("Obama"); //Xóa số phone của một người không có trong //dictionary dictionary.Remove("Nothing"); Xóa tất cả phần tử trong Dictionary. //Xóa tất cả phần tử trong Dictionary dictionary.Clear();

Page 21: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Dictionary – Duyệt các phần tử

21

Duyệt các phần tử trong Dictionary. foreach (KeyValuePair<string, int> pair in dictionary) { Console.WriteLine("{0}, {1}", pair.Key, pair.Value); } foreach (var pair in dictionary) { Console.WriteLine("{0}, {1}", pair.Key, pair.Value); }

Page 22: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

List vs Dictionary

Thông thường, với các chương trình có tìm kiếm (lookup) thì ta nên dùng Dictionary Với các chương trình sử dụng duyệt phần tử (looping) thường xuyên thì ta nên dùng List Trong Dictionary, ta không được phép Add cùng lúc 2 phần tử có cùng key

22

dictionary.Add("John", 1234); //dictionary.Add("John", 1235);

Page 23: COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List được dùng để chứa một nhóm các đối tượng (từ 0 tới n đối tượng)

Giới thiệu về Collection List Dictionary Bài tập

TÓM TẮT

23