Ngôn Ngữ Lập Trình C# thức CopyTo(). Thuộc tính thường được sử dụng là Count, thuộc tính này trả về số thành phần trong tập hợp: for(int i = 0; i Dùng trong các tập hợp dựa trên khóa và giá trị như Hashtable và SortedList. Cho phép liệt kê dùng câu lệnh foreach qua tập hợp hỗ trợ IDictionary. Bảng 9.2: Giao diện cho tập hợp.
ins() CopyTo() GetEnumerator() GetRange() Phương thức public để thêm nhiều thành phần ICollection vào cuối ArrayList Phương thức nạp chồng public sử dụng tìm kiếm nhị phận để định vị thành phần xác định ArrayList xếp Xóa tất thành phần từ ArrayList Tạo copy Kiểm tra thành phần xem có chứa mảng hay khơng Phương thức public nạp chồng để chép ArrayList đến mảng chiều Phương thức public nạp chồng trả enumerator dùng để lặp qua mảng Sao chép dãy thành phần đến ArrayList Insert() Phương thức public nạp chồng trả mục vị trí xuất giá trị Chèn thành phần vào ArrayList InsertRange(0 Chèn dãy tập hợp vào ArrayList IndexOf() 249 Mảng, Chỉ Mục, Tập Hợp Ngôn Ngữ Lập Trình C# LastIndexOf() Phương thức public nạp chồng trả mục trị trí cuối xuất giá trị Remove() Xóa xuất đối tượng xác định Xóa thành phần vị trí xác định RemoveAt() RemoveRange() Reverse() SetRange() Sort() ToArray() TrimToSize() Xóa dãy thành phần Đảo thứ tự thành phần mảng Sao chép thành phần tập hợp qua dãy thành phần ArrayList Sắp xếp ArrayList Sao chép thành phần ArrayList đến mảng Thiết lập kích thước thật chứa thành phần ArrayList Bảng 9.3: Các phương thức thuộc tính ArrayList Khi tạo đối tượng ArrayList, không cần thiết phải định nghĩa số đối tượng mà chứa Chúng ta thêm vào ArrayList cách dùng phương thức Add(), danh sách quan lý đối tượng bên mà lưu giữ Ví dụ 9.12 sau minh họa sử dụng ArrayList Ví dụ 9.12: Sử dụng ArrayList namespace Programming_CSharp { using System; using System.Collections; // lớp đơn giản để lưu trữ mảng public class Employee { public Employee(int empID) { this.empID = empID; } public override string ToString() { return empID.ToString(); } public int EmpID { get { 250 Mảng, Chỉ Mục, Tập Hợp Ngơn Ngữ Lập Trình C# return empID; } set { empID = value; } } private int empID; } public class Tester { static void Main() { ArrayList empArray = new ArrayList(); ArrayList intArray = new ArrayList(); // đưa vào mảng for( int i = 0; i < 5; i++) { empArray.Add( new Employee(i+100)); intArray.Add( i*5 ); } // in tất nội dung for(int i = 0; i < intArray.Count; i++) { Console.Write(“{0} ”,intArray[i].ToString()); } Console.WriteLine(“\n”); // in tất nội dung mảng for(int i = 0; i < empArray.Count; i++) { Console.Write(“{0} ”,empArray[i].ToString()); } Console.WriteLine(“\n”); Console.WriteLine(“empArray.Count: {0}”, empArray.Count); Console.WriteLine(“empArray.Capacity: {0}”, empArray.Capacity); } } } 251 Mảng, Chỉ Mục, Tập Hợp Ngôn Ngữ Lập Trình C# Kết quả: 100 10 15 101 102 20 103 104 empArray.Count: empArray.Capacity: 16 Với lớp Array phải định nghĩa số đối tượng mà mảng lưu giữ Nếu cố thêm thành phần vào mảng vượt q kích thước mảng lớp mảng phát sinh ngoại lệ Với ArrayList khơng cần phải khai báo số đối tượng mà lưu giữ ArrayList có thuộc tính Capacity, đưa số thành phần mà ArrayList lưu trữ: public int Capacity {virtual get; virtual set;} Mặc định giá trị Capacity 16, thêm thành phần thứ 17 vào Capacity tự động nhân đôi lên 32 Nếu thay đổi vòng lặp sau: for( int i = 0; i < 17; i++) kết giống sau: 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 10 11 12 13 14 15 16 17 18 19 20 21 empArray.Capacity: 32 Chúng ta làm tay để thay đổi giá trị Capacity hay lớn giá trị Count Nếu thiết lập giá trị Capacity nhỏ giá trị Count, chương trình phát sinh ngoại lệ có kiểu sau ArgumentOutOfRangeException Thực thi IComparable Giống tất tập hợp, ArrayList thực thi phương thức Sort() phép thực việc xếp đối tượng thực thi IComparable Trong ví dụ sao, bổ sung đối tượng Employee để thực thi IComparable: public class Employee: IComparable Để thực thi giao diện IComparable, đối tượng Employee phải cung cấp phương thức CompareTo(): public int CompareTo(Object o) { Employee r = (Employee) o; return this.empID.CompareTo(r.empID); } Phương thức CompareTo() lấy đối tượng làm tham số, đối tượng Employee phải so sánh với đối tượng trả -1 nhỏ đối tượng này, lớn hơn, cuối giá trị hai đối tượng Việc xác định thứ tự Employee 252 Mảng, Chỉ Mục, Tập Hợp ... empArray.Capacity: 32 Chúng ta làm tay để thay đổi giá trị Capacity hay lớn giá trị Count Nếu thiết lập giá trị Capacity nhỏ giá trị Count, chương trình phát sinh ngoại lệ có kiểu sau ArgumentOutOfRangeException... ArrayList Khi tạo đối tượng ArrayList, không cần thiết phải định nghĩa số đối tượng mà chứa Chúng ta thêm vào ArrayList cách dùng phương thức Add(), danh sách quan lý đối tượng bên mà lưu giữ... họa sử dụng ArrayList Ví dụ 9.12: Sử dụng ArrayList namespace Programming_CSharp { using System; using System.Collections; // lớp đơn giản để lưu trữ mảng