Upload
others
View
10
Download
0
Embed Size (px)
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