Tham khảo tài liệu 'giáo trình hình thành hệ thống ứng dụng điều chỉnh bo mạch mảng một chiều trong dấu ngoặc p3', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | IDictionary Dùng trong các tập hợp dựa trên khóa và giá trị như Hashtable và SortedList. IDictionaryEnumerator Cho phép liệt kê dùng câu lệnh foreach qua tập hợp hỗ trợ IDictionary. Bảng Giao diện cho tập hợp. Giao diện lEnumerable Chúng ta có thể hỗ trợ cú pháp foreach trong lớp ListBoxTest bằng việc thực thi giao diện lEnumerator. Giao diện này chỉ có một phương thức duy nhất là GetEnumerator công việc của phương thức là trả về một sự thực thi đặc biệt của lEnumerator. Do vậy ngữ nghĩa của lớp Enumerable là nó có thể cung cấp một Enumerator public lEnumerator GetEnumerator return IEnumerator new ListBoxEnumerator this Enumerator phải thực thi những phương thức và thuộc tính IEnumerator. Chúng có thể được thực thi trực tiếp trong lớp chứa trong trường hợp này là lớp ListBoxTest hay bởi một lớp phân biệt khác. Cách tiếp cận thứ hai thường được sử dụng nhiều hơn do chúng được đóng gói trong lớp Enumerator hơn là việc phân vào trong các lớp chứa. Do lớp Enumerator được xác định cho lớp chứa vì theo như trên thì lớp ListBoxEnumerator phải biết nhiều về lớp ListBoxTest. Nên chúng ta phải tạo cho nó một sự thực thi riêng chứa bên trong lớp ListBoxTest. Lưu ý rằng phương thức GetEnumerator truyền đối tượng ListBoxTest hiện thời this cho enumerator. Điều này cho phép enumerator có thể liệt kê được các thành phần trong tập hợp của đối tượng ListBoxTest. Ở đây lớp thực thi Enumerator là ListBoxEnumerator đây là một lớp private được định nghĩa bên trong lớp ListBoxTest. Lớp này thực thi đơn giản bao gồm một thuộc tính public và hai phương thức public là MoveNext và Reset . Đối tượng ListBoxTest được truyền vào như một đối mục của bộ khởi tạo. Ở đây nó được gán cho biến thành viên myLBT. Trong hàm khởi tạo này cũng thực hiện thiết lập giá trị biến thành viên index là -1 chỉ ra rằng chưa bắt đầu thực hiện việc enumerator đối tượng public ListBoxEnumerator ListBoxTest lbt lbt index -1 Phương thức MoveNext gia tăng index và sau đó kiểm tra để đảm bảo rằng việc thực