COLLECTIONfit.huflit.edu.vn/wp-content/uploads/2017/08/Chuong-8-Collection.pdfTrong C#, List...

Preview:

Citation preview

Click to edit Master subtitle style

COLLECTION

1

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

NỘI DUNG

2

COLLECTION – KHÁI NIỆM

3

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

LIST

5

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

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>();

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

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();

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);

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);

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

DICTIONARY

13

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

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>();

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

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;

Dictionary – Thêm phần tử

18

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

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); }

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();

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); }

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);

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

TÓM TẮT

23

Recommended