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

การนับจำนวนคู่คีย์/ค่าใน Hashtable ใน C#

ภาพรวม

คุณสมบัติ Hashtable.Count คืนจำนวนคู่คีย์/ค่าที่จัดเก็บอยู่ (O(1))

ตัวอย่างที่ 1: เพิ่มข้อมูลและนับ

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        hash.Add("A", "SUV");
        hash.Add("B", "MUV");
        hash.Add("C", "AUV");

        Console.WriteLine("Hashtable elements...");
        foreach (DictionaryEntry d in hash)
        {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        Console.WriteLine("Count of Key/value pairs = " + hash.Count);

        hash.Add("D", "Utility Vehicle");
        hash.Add("E", "Convertible");

        Console.WriteLine("Count of Key/value pairs (Updated) = " + hash.Count);
    }
}

ผลลัพธ์

Hashtable elements...
C AUV
A SUV
B MUV
Count of Key/value pairs = 3
Count of Key/value pairs (Updated) = 5

ตัวอย่างที่ 2: Hashtable ขนาดใหญ่พร้อม Enumerator

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 key/value pairs in Hashtable = " + hash.Count);

        Console.WriteLine("\nEnumerator to iterate through the Hashtable...");
        IDictionaryEnumerator demoEnum = hash.GetEnumerator();
        while (demoEnum.MoveNext())
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
    }
}

ผลลัพธ์

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 key/value pairs in Hashtable = 10
Enumerator to iterate through the Hashtable...
Key = 10, Value = J
Key = 1, Value = A
Key = 2, Value = B
Key = 3, Value = C
Key = 4, Value = D
Key = 5, Value = E
Key = 6, Value = F
Key = 7, Value = G
Key = 8, Value = H
Key = 9, Value = I

สรุป

  • Count ให้จำนวนคู่คีย์/ค่าทันที
  • Hashtable ไม่เรียงลำดับ ลำดับการ enumeration ไม่แน่นอน
  • ใหม่ควรใช้ Dictionary<TKey, TValue> แทน (generic, type-safe, เร็วกว่า)