80
Chương 2: Thao tác dữ liệu
// Sử dụng ArrayList.ToArray để tạo một object[]
// từ nội dung của tập hợp.
object[] array2 = list.ToArray();
// Sử dụng ArrayList.ToArray để tạo một string[] kiểu mạnh
// từ nội dung của tập hợp.
string[] array3 =
(string[])list.ToArray(System.Type.GetType("System.String"));
11.
11.
T o m t t p h p ki u m nh
ạ ộ ậ ợ
ể ạ
T o m t t p h p ki u m nh
ạ ộ ậ ợ
ể ạ
Bạn cần tạo một tập hợp chỉ chứa các phần tử thuộc một kiểu nhất định.
Tạo một lớp dẫn xuất từ lớp
System.Collections.CollectionBase
hay
System.Collections.DictionaryBase
, và hiện thực các phương thức an-toàn-về-
kiểu-dữ-liệu (type-safe) để thao tác trên tập hợp.
Các lớp
CollectionBase
và
DictionaryBase
có thể đóng vai trò các lớp cơ sở để dẫn xuất ra
các lớp tập hợp an-toàn-kiểu mà không phải hiện thực lại các giao diện chuẩn:
IDictionary
,
IList
,
ICollection
, và
IEnumerable
.
•
CollectionBase
dùng cho các tập hợp dựa-trên-
Ilist
(như
ArrayList
). Thực chất,
CollectionBase
duy trì tập hợp bằng một đối tượng
ArrayList
chuẩn, có thể được truy
xuất thông qua thuộc tính bảo vệ
List
.
•
DictionaryBase
dùng cho các tập hợp dựa-trên-
IDictionary
(như
Hashtable
). Thực
chất,
DictionaryBase
duy trì tập hợp bằng một đối tượng
Hashtable
chuẩn, có thể được
truy xuất thông qua thuộc tính bảo vệ
Dictionary
.
Đoạn mã sau hiện thực một tập hợp tên mạnh (dựa trên lớp
CollectionBase
) để thể hiện một
danh sách các đối tượng
System.Reflection.AssemblyName
.
using System.Reflection;
using System.Collections;
public class AssemblyNameList : CollectionBase {
public int Add(AssemblyName value) {
return this.List.Add(value);
}
public void Remove(AssemblyName value) {