Giới thiệu
SortedList duy trì mảng nội bộ cho khóa và giá trị. Capacity là dung lượng tối đa trước khi phải cấp phát lại mảng, trong khi Count là số phần tử thực tế. Capacity tự động tăng khi cần.
Ví dụ 1: Capacity mặc định với 10 phần tử
using System;
using System.Collections;
public class Demo
{
public static void Main(String[] args)
{
SortedList sortedList = new SortedList();
sortedList.Add("A", "1");
sortedList.Add("B", "2");
sortedList.Add("C", "3");
sortedList.Add("D", "4");
sortedList.Add("E", "5");
sortedList.Add("F", "6");
sortedList.Add("G", "7");
sortedList.Add("H", "8");
sortedList.Add("I", "9");
sortedList.Add("J", "10");
Console.WriteLine("SortedList elements...");
foreach (DictionaryEntry d in sortedList)
{
Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
}
Console.WriteLine("Count of SortedList key-value pairs = " + sortedList.Count);
Console.WriteLine("Capacity of SortedList = " + sortedList.Capacity);
Console.WriteLine("\nEnumerator to iterate through the SortedList...");
IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
while (demoEnum.MoveNext())
{
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
}
}
}
Kết quả
SortedList elements... Key = A, Value = 1 Key = B, Value = 2 Key = C, Value = 3 Key = D, Value = 4 Key = E, Value = 5 Key = F, Value = 6 Key = G, Value = 7 Key = H, Value = 8 Key = I, Value = 9 Key = J, Value = 10 Count of SortedList key-value pairs = 10 Capacity of SortedList = 16 Enumerator to iterate through the SortedList... Key = A, Value = 1 Key = B, Value = 2 Key = C, Value = 3 Key = D, Value = 4 Key = E, Value = 5 Key = F, Value = 6 Key = G, Value = 7 Key = H, Value = 8 Key = I, Value = 9 Key = J, Value = 10
Ví dụ 2: Capacity sau khi Clear()
using System;
using System.Collections;
public class Demo
{
public static void Main(String[] args)
{
SortedList sortedList = new SortedList();
sortedList.Add("A", "1");
sortedList.Add("B", "2");
sortedList.Add("C", "3");
sortedList.Add("D", "4");
sortedList.Add("E", "5");
sortedList.Add("F", "6");
Console.WriteLine("SortedList elements...");
foreach (DictionaryEntry d in sortedList)
{
Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
}
Console.WriteLine("Count of SortedList key-value pairs = " + sortedList.Count);
Console.WriteLine("Capacity of SortedList = " + sortedList.Capacity);
sortedList.Clear();
Console.WriteLine("Count of SortedList key-value pairs = " + sortedList.Count);
Console.WriteLine("Capacity of SortedList = " + sortedList.Capacity);
}
}
Kết quả
SortedList elements... Key = A, Value = 1 Key = B, Value = 2 Key = C, Value = 3 Key = D, Value = 4 Key = E, Value = 5 Key = F, Value = 6 Count of SortedList key-value pairs = 6 Capacity of SortedList = 16 Count of SortedList key-value pairs = 0 Capacity of SortedList = 16
Lưu ý quan trọng
Clear()chỉ đặt Count = 0, KHÔNG giảm Capacity- Để giảm bộ nhớ:
sortedList.TrimExcess()(tốn chi phí copy mảng) - Khởi tạo với dung lượng:
new SortedList(capacity) - Capacity luôn ≥ Count
Khuyến nghị hiện đại
Sử dụng SortedList<TKey, TValue> (generic) trong namespace System.Collections.Generic để an toàn kiểu và hiệu suất tốt hơn.