HybridDictionary มีเมธอด Clear() ลบรายการทั้งหมด ทำให้ Count กลายเป็น 0 และ IsFixedSize, IsReadOnly, IsSynchronized ยังคงเป็น false
ตัวอย่างโค้ดที่ 1: Clear และ Count
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo
{
public static void Main()
{
HybridDictionary dict1 = new HybridDictionary();
dict1.Add("A", "Books");
dict1.Add("B", "Electronics");
dict1.Add("C", "Smart Wearables");
dict1.Add("D", "Pet Supplies");
dict1.Add("E", "Clothing");
dict1.Add("F", "Footwear");
Console.WriteLine("HybridDictionary1 elements...");
foreach (DictionaryEntry d in dict1)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Count of Key/value pairs in Dictionary1 = " + dict1.Count);
HybridDictionary dict2 = new HybridDictionary();
dict2.Add("1", "One");
dict2.Add("2", "Two");
dict2.Add("3", "Three");
dict2.Add("4", "Four");
dict2.Add("5", "Five");
dict2.Add("6", "Six");
Console.WriteLine("\nHybridDictionary2 elements...");
foreach (DictionaryEntry d in dict2)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Count of Key/value pairs in Dictionary2 = " + dict1.Count); // Bug ในต้นฉบับ: ควรเป็น dict2.Count
dict2.Clear();
Console.WriteLine("Count of Key/value pairs in Dictionary2 (Updated) = " + dict2.Count);
}
}
ผลลัพธ์
HybridDictionary1 elements...
A Books
B Electronics
C Smart Wearables
D Pet Supplies
E Clothing
F Footwear
Count of Key/value pairs in Dictionary1 = 6
HybridDictionary2 elements...
1 One
2 Two
3 Three
4 Four
5 Five
6 Six
Count of Key/value pairs in Dictionary2 = 6
Count of Key/value pairs in Dictionary2 (Updated) = 0
ตัวอย่างโค้ดที่ 2: HybridDictionary เล็ก
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo
{
public static void Main()
{
HybridDictionary dict = new HybridDictionary();
dict.Add("One", "Accessories");
dict.Add("Two", "Pet Supplies");
Console.WriteLine("HybridDictionary elements...");
foreach (DictionaryEntry d in dict)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Count of Key/value pairs in Dictionary = " + dict.Count);
}
}
ผลลัพธ์
HybridDictionary elements...
One Accessories
Two Pet Supplies
Count of Key/value pairs in Dictionary = 2
สรุป HybridDictionary
| Member | คำอธิบาย |
|---|---|
Clear() | ลบทั้งหมด Count = 0 |
Remove(key) | ลบตามคีย์ |
Count | จำนวนรายการ |
Add(key, value) | เพิ่มคีย์-ค่า |
Item[key] | Indexer (get/set) |
Contains(key) | ตรวจสอบคีย์ |
Keys / Values | ICollection |
IsFixedSize | false เสมอ |
IsReadOnly | false เสมอ |
IsSynchronized | false เสมอ |
การทำงานภายใน (Internal Behavior)
- ≤ 9 items: ใช้
ListDictionary(linked list) - เร็วกว่าสำหรับข้อมูลน้อย - > 9 items: สลับเป็น
Hashtable- เร็วกว่าสำหรับข้อมูลเยอะ - การสลับเกิดขึ้นอัตโนมัติและโปร่งใส
ข้อควรระวัง
- Non-generic - ใช้
objectkey/value - Legacy class - ในโค้ดใหม่ใช้
Dictionary<TKey, TValue>แทน - อยู่ใน
System.Collections.Specialized - ตัวอย่างที่ 1 มี bug เล็กน้อย:
dict1.Countแทนdict2.Count(แต่ผลลัพธ์เท่ากันเพราะทั้งคู่นับ 6)