Các kiểu từ cung cấp thêm hai thuộc tính là thuộc tính Keys, và thuộc tính Values. Trong
đó Keys truy cập đối tượng ICollection với tất cả những khóa trong Hashtable, và Values truy
cập đối tượng ICollection với tất cả giá trị. Ví dụ 9.18 minh họa như sau. Ví dụ 9.18 Tập khóa và tập giá trị. ----------------------------------------------------------------------------- namespace Progrmming_CSharp { using System; using System.Collections; public class Tester
{
static void Main() {
// tạo và khởi tạo hashtable
Hashtable hashTable = new Hashtable(); hashTable.Add(“00440123”,”Ngoc Thao”); hashTable.Add(“00123001”,”My Tien”); hashTable.Add(“00330124”,”Thanh Tung”); // nhận tập khóa
ICollection keys = hashTable.Keys; // nhập tập giá trị
ICollection values = hashTable.Values; // xuất tập khóa
foreach( string s in keys) {
Console.WriteLine(“{0}”, s); }
// xuất tập giá trị
foreach( string s in values) { Console.WriteLine(“{0}”, s); } } } } ----------------------------------------------------------------------------- Kết quả: 00123001 00440123 00330124 My Tien Ngoc Thao Thanh Tung -----------------------------------------------------------------------------
Mặc dù thứ tự của keys không được đảm bảo theo thứ tự nhưng chúng đảm bảo rằng cùng với thứ tự đưa ra của giá trị. Như chúng ta thấy trên khóa 00123001 tương ứng với My Tien,...
Giao diện IDictionaryEnumerator
Những đối tượng IDictionary cũng hỗ trợ vòng lặp foreach bằng việc thực thi phương thức GetEnumerator(), phương thức này trả về một IDictionaryEnumerator.
IDictionaryEnumerator được sử dụng để liệt kê bất cứ đối tượng IDictionary nào. Nó cung cấp thuộc tính để truy cập cả khóa và giá trị cho mỗi thành phần trong từ điển. Ta có ví dụ 9.19 minh họa như sau:
Ví dụ 9.16: sử dụng giao diện IDictionaryEnumerator. ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- namespace Progrmming_CSharp
{
using System;
using System.Collections; public class Tester
{
static void Main() {
// tạo và khởi tạo hashtable
Hashtable hashTable = new Hashtable(); hashTable.Add(“00440123”,”Ngoc Thao”); hashTable.Add(“00123001”,”My Tien”); hashTable.Add(“00330124”,”Thanh Tung”); Console.WriteLine(“hashTable”);
Console.WriteLine(“Count: {0}”,hashTable.Count); Console.WriteLine(“Keys and Values:”);
Print( hashTable ); }
public static void Print(Hashtable table) {
IDictionaryEnumerator enumerator = table.GetEnumerator(); while ( enumerator.MoveNext() ) { Console.WriteLine(“\t{0}:\t{1}”, enumerator.Key, enumerator.Value); } Console.WriteLine(); } } } ----------------------------------------------------------------------------- Kết quả: hashTableg Count: 3 Keys and Values:
00123001: 00440123: 00440123: 00330124: My Tien Ngoc Thao Thanh Tung -----------------------------------------------------------------------------