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

ลบข้อมูลตามคีย์ใน Hashtable ใน C#

Hashtable มีเมธอด Remove(key) สำหรับลบรายการที่มีคีย์ตรงกับที่ระบุ คืนค่า void หากไม่พบคีย์ก็ไม่เกิด exception

ตัวอย่างโค้ดที่ 1: ลบคีย์เดียว

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.Remove("5"); // ลบคีย์ "5"

        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) = 9

ตัวอย่างโค้ดที่ 2: ลบหลายคีย์

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable(10);
        hash.Add("One", "Marketing");
        hash.Add("Two", "Operations");
        hash.Add("Three", "Finance");
        hash.Add("Four", "IT");
        hash.Add("Five", "Sales");
        hash.Add("Six", "Purchase");

        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.Remove("Two");
        hash.Remove("Three");
        hash.Remove("Four");

        Console.WriteLine("Count of entries in Hashtable (updated) = " + hash.Count);
    }
}

ผลลัพธ์

Hashtable Key and Value pairs...
One and Marketing
Five and Sales
Three and Finance
Two and Operations
Four and IT
Six and Purchase
Count of entries in Hashtable = 6
Count of entries in Hashtable (updated) = 3

เมธอดลบข้อมูลใน Hashtable

ข้อสังเกต

  • Remove(key) ใช้ key.Equals() ในการเปรียบเทียบ
  • ไม่โยน exception หากคีย์ไม่มีอยู่
  • Hashtable ไม่รองรับ RemoveAt(index) เพราะไม่มีลำดับที่แน่นอน
  • ในโค้ดใหม่ ควรใช้ Dictionary<TKey, TValue> แทน - type-safe, เร็วกว่า, API สมัยใหม่

Dictionary<TKey, TValue> - Remove


var dict = new Dictionary<string, int>();
dict["A"] = 1;
dict["B"] = 2;

bool removed = dict.Remove("A"); // คืน true/false
dict.Remove("C"); // คืน false, ไม่โยน exception
เมธอดคำอธิบาย
Remove(key)ลบรายการที่มีคีย์ตรงกัน
Clear()ลบทั้งหมด