Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีลบสมาชิกทั้งหมดจาก Hashtable ใน C#

บทความนี้สาธิตวิธีการลบสมาชิกทั้งหมดจาก 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, เร็วกว่า)