บทความนี้สาธิตวิธีการลบสมาชิกทั้งหมดจาก Hashtable โดยใช้ method Clear()
ตัวอย่างที่ 1: ล้าง Hashtable 10 รายการ
using System;
using System.Collections;
public class Demo
{
public static void Main()
{
Hashtable hash = new Hashtable(10);
hash.Add("1", "A");
hash.Add("2", "B");
hash.Add("3", "C");
hash.Add("4", "D");
hash.Add("5", "E");
hash.Add("6", "F");
hash.Add("7", "G");
hash.Add("8", "H");
hash.Add("9", "I");
hash.Add("10", "J");
Console.WriteLine("Hashtable Key and Value pairs...");
foreach (DictionaryEntry entry in hash)
{
Console.WriteLine("{0} and {1}", entry.Key, entry.Value);
}
Console.WriteLine("Is the Hashtable having fixed size? = " + hash.IsFixedSize);
Console.WriteLine("Count of entries in Hashtable = " + hash.Count);
hash.Clear();
Console.WriteLine("Count of entries in Hashtable (updated) = " + hash.Count);
}
}
ผลลัพธ์
Hashtable Key and Value pairs... 10 and J 1 and A 2 and B 3 and C 4 and D 5 and E 6 and F 7 and G 8 and H 9 and I Is the Hashtable having fixed size? = False Count of entries in Hashtable = 10 Count of entries in Hashtable (updated) = 0
ตัวอย่างที่ 2: ล้าง Hashtable 5 รายการ
using System;
using System.Collections;
public class Demo
{
public static void Main()
{
Hashtable hash = new Hashtable(10);
hash.Add("One", "100");
hash.Add("Two", "200");
hash.Add("Three", "300");
hash.Add("Four", "400");
hash.Add("Five", "500");
Console.WriteLine("Hashtable Key and Value pairs...");
foreach (DictionaryEntry entry in hash)
{
Console.WriteLine("{0} and {1}", entry.Key, entry.Value);
}
Console.WriteLine("Count of entries in Hashtable = " + hash.Count);
hash.Clear();
Console.WriteLine("Count of entries in Hashtable (updated) = " + hash.Count);
}
}
ผลลัพธ์
Hashtable Key and Value pairs... One and 100 Five and 500 Three and 300 Two and 200 Four and 400 Count of entries in Hashtable = 5 Count of entries in Hashtable (updated) = 0
คำอธิบายเพิ่มเติม
Clear()ลบรายการทั้งหมดจาก Hashtable ทำให้ Count = 0- ความจุ (capacity) ไม่เปลี่ยน - bucket array ยังคงอยู่ เพื่อประสิทธิภาพการเพิ่มข้อมูลใหม่
IsFixedSizeเสมอเป็น false สำหรับ Hashtable ปกติ- Hashtable ไม่จัดเรียงข้อมูล - ลำดับใน output เป็นตาม hash code ไม่ใช่ insertion order
- Key และ Value เป็น object - ต้อง cast ตอนใช้งาน
- Hashtable เป็น legacy class - แนะนำใช้
Dictionary<TKey, TValue>แทน (generic, type-safe, เร็วกว่า)