Giới thiệu
Trong C#, ListDictionary (từ namespace System.Collections.Specialized) là một triển khai từ điển đơn giản dựa trên danh sách liên kết, phù hợp cho các tập dữ liệu nhỏ. Để kiểm tra xem một ListDictionary có kích thước cố định hay không, ta sử dụng thuộc tính IsFixedSize. Thuộc tính này luôn trả về false vì ListDictionary cho phép thêm/xóa phần tử tự do.
Ví dụ 1: Kiểm tra các thuộc tính cơ bản
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo
{
public static void Main()
{
ListDictionary dict1 = new ListDictionary();
dict1.Add("A", "Books");
dict1.Add("B", "Electronics");
dict1.Add("C", "Smart Wearables");
dict1.Add("D", "Pet Supplies");
dict1.Add("E", "Clothing");
dict1.Add("F", "Footwear");
Console.WriteLine("Các phần tử trong ListDictionary1...");
foreach (DictionaryEntry d in dict1)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("ListDictionary1 có kích thước cố định? = " + dict1.IsFixedSize);
Console.WriteLine("ListDictionary1 chỉ đọc? = " + dict1.IsReadOnly);
Console.WriteLine("ListDictionary1 đã đồng bộ? = " + dict1.IsSynchronized);
Console.WriteLine("ListDictionary1 có khóa 'M'? = " + dict1.Contains("M"));
ListDictionary dict2 = new ListDictionary();
dict2.Add("1", "One");
dict2.Add("2", "Two");
dict2.Add("3", "Three");
dict2.Add("4", "Four");
dict2.Add("5", "Five");
dict2.Add("6", "Six");
Console.WriteLine("\nCác cặp khóa-giá trị trong ListDictionary2...");
IDictionaryEnumerator demoEnum = dict2.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
Console.WriteLine("ListDictionary2 có kích thước cố định? = " + dict2.IsFixedSize);
Console.WriteLine("ListDictionary2 chỉ đọc? = " + dict2.IsReadOnly);
Console.WriteLine("ListDictionary2 đã đồng bộ? = " + dict2.IsSynchronized);
Console.WriteLine("ListDictionary2 có khóa '5'? = " + dict2.Contains("5"));
}
}
Kết quả
Các phần tử trong ListDictionary1...
A Books
B Electronics
C Smart Wearables
D Pet Supplies
E Clothing
F Footwear
ListDictionary1 có kích thước cố định? = False
ListDictionary1 chỉ đọc? = False
ListDictionary1 đã đồng bộ? = False
ListDictionary1 có khóa 'M'? = False
Các cặp khóa-giá trị trong ListDictionary2...
Key = 1, Value = One
Key = 2, Value = Two
Key = 3, Value = Three
Key = 4, Value = Four
Key = 5, Value = Five
Key = 6, Value = Six
ListDictionary2 có kích thước cố định? = False
ListDictionary2 chỉ đọc? = False
ListDictionary2 đã đồng bộ? = False
ListDictionary2 có khóa '5'? = True
Ví dụ 2: Thêm nhiều phần tử và kiểm tra
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo
{
public static void Main()
{
ListDictionary dict = new ListDictionary();
dict.Add("1", "SUV");
dict.Add("2", "Sedan");
dict.Add("3", "Utility Vehicle");
dict.Add("4", "Compact Car");
dict.Add("5", "SUV");
dict.Add("6", "Sedan");
dict.Add("7", "Utility Vehicle");
dict.Add("8", "Compact Car");
dict.Add("9", "Crossover");
dict.Add("10", "Electric Car");
Console.WriteLine("Các phần tử trong ListDictionary...");
foreach (DictionaryEntry d in dict)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nListDictionary có kích thước cố định? = " + dict.IsFixedSize);
Console.WriteLine("ListDictionary chỉ đọc? = " + dict.IsReadOnly);
Console.WriteLine("ListDictionary đã đồng bộ? = " + dict.IsSynchronized);
Console.WriteLine("ListDictionary có khóa 'K'? = " + dict.Contains("K"));
Console.WriteLine("ListDictionary có khóa '9'? = " + dict.Contains("9"));
}
}
Kết quả
Các phần tử trong ListDictionary...
1 SUV
2 Sedan
3 Utility Vehicle
4 Compact Car
5 SUV
6 Sedan
7 Utility Vehicle
8 Compact Car
9 Crossover
10 Electric Car
ListDictionary có kích thước cố định? = False
ListDictionary chỉ đọc? = False
ListDictionary đã đồng bộ? = False
ListDictionary có khóa 'K'? = False
ListDictionary có khóa '9'? = True
Tóm tắt
IsFixedSizeluôn trả vềfalsechoListDictionary.IsReadOnlycũng luôn làfalse.IsSynchronizedcho biết có an toàn cho luồng (thread-safe) hay không; mặc định làfalse.- Sử dụng
Contains(key)để kiểm tra sự tồn tại của khóa.