Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Kiểm tra Hashtable có chứa khóa cụ thể trong C#

Giới thiệu

Lớp Hashtable trong namespace System.Collections lưu trữ các cặp khóa/giá trị. Để kiểm tra sự tồn tại của một khóa, ta sử dụng phương thức ContainsKey() hoặc Contains() (cả hai đều kiểm tra khóa).

Ví dụ 1

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("Các cặp khóa/giá trị trong Hashtable...");
        foreach (DictionaryEntry entry in hash)
        {
            Console.WriteLine("{0} và {1}", entry.Key, entry.Value);
        }

        Console.WriteLine("Hashtable có kích thước cố định? = " + hash.IsFixedSize);
        Console.WriteLine("Hashtable chỉ đọc? = " + hash.IsReadOnly);
        Console.WriteLine("Hashtable có chứa khóa 'Seven'? = " + hash.ContainsKey("Seven"));
    }
}

Kết quả

Các cặp khóa/giá trị trong Hashtable...
One và Katie
Ten và Tim
Five và Harry
Three và Barry
Seven và Tom
Two và John
Four và Mark
Eight và Andy
Nine và Illeana
Six và Nathan
Hashtable có kích thước cố định? = False
Hashtable chỉ đọc? = False
Hashtable có chứa khóa 'Seven'? = True

Ví dụ 2

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("Các cặp khóa/giá trị trong Hashtable...");
        foreach (DictionaryEntry entry in hash)
        {
            Console.WriteLine("{0} và {1}", entry.Key, entry.Value);
        }

        Console.WriteLine("Hashtable có kích thước cố định? = " + hash.IsFixedSize);
        Console.WriteLine("Hashtable chỉ đọc? = " + hash.IsReadOnly);
        Console.WriteLine("Hashtable có chứa khóa '5'? = " + hash.ContainsKey("5"));
    }
}

Kết quả

Các cặp khóa/giá trị trong Hashtable...
10 và J
1 và A
2 và B
3 và C
4 và D
5 và E
6 và F
7 và G
8 và H
9 và I
Hashtable có kích thước cố định? = False
Hashtable chỉ đọc? = False
Hashtable có chứa khóa '5'? = True

Lưu ý quan trọng

  • Hashtable không đảm bảo thứ tự các phần tử khi duyệt.
  • Phương thức ContainsKey() và Contains() có độ phức tạp O(1) trung bình.
  • Hashtable cho phép khóa là null (khác với Dictionary).
  • Trong .NET hiện đại, khuyến nghị sử dụng Dictionary<TKey, TValue> vì hiệu suất tốt hơn và type-safe.
  • Thuộc tính IsFixedSize luôn trả về false cho Hashtable thông thường.