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

ตรวจสอบว่า Hashtable เป็นแบบอ่านอย่างเดียวหรือไม่ใน C#

บทความนี้สาธิตวิธีตรวจสอบว่า Hashtable เป็นแบบอ่านอย่างเดียว (read-only) หรือไม่ โดยใช้คุณสมบัติ IsReadOnly ใน C#

ตัวอย่างที่ 1: ตรวจสอบคุณสมบัติ IsReadOnly และ IsFixedSize

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        hash.Add("One", "Katie");
        hash.Add("Two", "John");
        hash.Add("Three", "Barry");
        hash.Add("Four", "");
        hash.Add("Five", "Harry");
        hash.Add("Six", "F");
        hash.Add("Seven", "Tom");
        hash.Add("Eight", "Andy");
        hash.Add("Nine", "I");
        hash.Add("Ten", "Tim");

        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("If Hashtable read-only? = " + hash.IsReadOnly);
    }
}

ผลลัพธ์

Hashtable Key and Value pairs...
One and Katie
Ten and Tim
Five and Harry
Three and Barry
Seven and Tom
Two and John
Four and 
Eight and Andy
Nine and I
Six and F
Is the Hashtable having fixed size? = False
If Hashtable read-only? = False

ตัวอย่างที่ 2: ตรวจสอบ Hashtable อีกตัวอย่างหนึ่ง

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        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 Hashtable having fixed size? = " + hash.IsFixedSize);
        Console.WriteLine("If Hashtable read-only? = " + hash.IsReadOnly);
    }
}

ผลลัพธ์

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 Hashtable having fixed size? = False
If Hashtable read-only? = False

สรุป

  • คุณสมบัติ IsReadOnly คืนค่า true หาก Hashtable เป็นแบบอ่านอย่างเดียว มิฉะนั้นคืนค่า false
  • คุณสมบัติ IsFixedSize คืนค่า true หาก Hashtable มีขนาดคงที่ มิฉะนั้นคืนค่า false
  • Hashtable ปกติ (สร้างด้วยคอนสตรัคเตอร์เริ่มต้น) จะมี IsReadOnly = false และ IsFixedSize = false เสมอ — หมายความว่าสามารถเพิ่ม/ลบ/แก้ไขข้อมูลได้
  • หากต้องการ Hashtable แบบอ่านอย่างเดียว ให้ใช้ Hashtable.Synchronized(new Hashtable()) หรือห่อด้วย wrapper แบบ read-only
  • แนะนำ: ใช้ Dictionary<TKey, TValue> แทนในโค้ดสมัยใหม่ เพราะมี type safety และประสิทธิภาพดีกว่า