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ặcArrayList.FixedSize()(cho ArrayList). - Trong .NET hiện đại, khuyến nghị sử dụng
Dictionary<TKey, TValue>thay vì Hashtable.