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

Kiểm tra Hashtable có kích thước cố định trong C#

Giới thiệu

Thuộc tính IsFixedSize của Hashtable cho biết xem Hashtable có kích thước cố định hay không. Hashtable thông thường luôn trả về false vì có thể thêm/xóa phần tử tự do. Chỉ các wrapper đặc biệt (như ArrayList.FixedSize()) mới trả về true.

Ví dụ 1

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable(10); // Chỉ định dung lượng ban đầu
        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 có kích thước cố định? = " + hash.IsFixedSize);
    }
}

Kết quả

Hashtable có kích thước cố định? = False

Ví dụ 2

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("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);
    }
}

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à 
Eight và Andy
Nine và I
Six và F
Hashtable có kích thước cố định? = False

Lưu ý quan trọng

  • Hashtable tiêu chuẩn luôn có IsFixedSize = false.
  • Tham số constructor new Hashtable(10) chỉ thiết lập dung lượng ban đầu (capacity), không giới hạn kích thước.
  • Để có collection kích thước cố định, có thể sử dụng mảng (array) hoặc ArrayList.FixedSize() (cho ArrayList).
  • Trong .NET hiện đại, khuyến nghị sử dụng Dictionary<TKey, TValue> thay vì Hashtable.