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

ตรวจสอบว่า Hashtable มีค่าเฉพาะหรือไม่ใน C#

บทความนี้สาธิตวิธีตรวจสอบว่า Hashtable มีค่า (value) ที่ระบุอยู่หรือไม่ โดยใช้เมธอด ContainsValue() ใน C#

ตัวอย่างที่ 1: ตรวจสอบค่าที่มีอยู่ใน 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);
        Console.WriteLine("The Hashtable consists of the value? = " + hash.ContainsValue("H"));
    }
}

ผลลัพธ์

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
The Hashtable consists of the value? = True

ตัวอย่างที่ 2: ตรวจสอบทั้งคีย์และค่าใน Hashtable

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", "Mark");
        hash.Add("Five", "Harry");
        hash.Add("Six", "Nathan");
        hash.Add("Seven", "Tom");
        hash.Add("Eight", "Andy");
        hash.Add("Nine", "Illeana");
        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 Hashtable having fixed size? = " + hash.IsFixedSize);
        Console.WriteLine("If Hashtable read-only? = " + hash.IsReadOnly);
        Console.WriteLine("The Hashtable consists of the key? = " + hash.ContainsKey("Seven"));
        Console.WriteLine("The Hashtable consists of the value? = " + hash.ContainsValue("Illeana"));
    }
}

ผลลัพธ์

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 Mark
Eight and Andy
Nine and Illeana
Six and Nathan
Is Hashtable having fixed size? = False
If Hashtable read-only? = False
The Hashtable consists of the key? = True
The Hashtable consists of the value? = True

สรุป

  • ใช้ ContainsValue(object value) เพื่อตรวจสอบว่ามีค่าที่ระบุอยู่ใน Hashtable หรือไม่ — คืนค่า bool
  • ใช้ ContainsKey(object key) เพื่อตรวจสอบคีย์
  • Hashtable ไม่รับประกันลำดับข้อมูล — การวนลูปอาจได้ลำดับต่างจากที่เพิ่มเข้าไป
  • คุณสมบัติ IsFixedSize และ IsReadOnly คืนค่า false สำหรับ Hashtable ทั่วไป
  • ประสิทธิภาพ: ContainsKey() เร็วกว่า ContainsValue() มาก เพราะคีย์ใช้ hashing (O(1)) ส่วนค่าต้อง linear search (O(n))
  • แนะนำ: ใช้ Dictionary<TKey, TValue> แทนในโค้ดใหม่ — มี type safety, generic, และประสิทธิภาพดีกว่า