SortedList มี property Count คืนค่าจำนวนคีย์-ค่า (key-value pairs) ในลิสต์ ทำงานใน O(1) นอกจากนี้ยังมี Clear() ลบทั้งหมด และ GetEnumerator() สำหรับวนลูป
ตัวอย่างโค้ดที่ 1: เพิ่ม 10 รายการ แล้ว 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");
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);
sortedList.Clear();
Console.WriteLine("Count of SortedList (updated) = " + sortedList.Count);
}
}
ผลลัพธ์
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
Count of SortedList (updated) = 0
ตัวอย่างโค้ดที่ 2: ใช้ Enumerator วนลูป
using System;
using System.Collections;
public class Demo
{
public static void Main(string[] args)
{
SortedList sortedList = new SortedList();
sortedList.Add("One", "1");
sortedList.Add("Two", "2");
sortedList.Add("Three", "3");
sortedList.Add("Four", "4");
sortedList.Add("Five", "5");
sortedList.Add("Six", "6");
sortedList.Add("Seven", "7");
sortedList.Add("Eight", "8");
sortedList.Add("Nine", "9");
sortedList.Add("Ten", "10");
Console.WriteLine("Count of SortedList key-value pairs = " + sortedList.Count);
Console.WriteLine("Enumerator to iterate through the SortedList...");
IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
}
}
ผลลัพธ์
Count of SortedList key-value pairs = 10
Enumerator to iterate through the SortedList...
Key = Eight, Value = 8
Key = Five, Value = 5
Key = Four, Value = 4
Key = Nine, Value = 9
Key = One, Value = 1
Key = Seven, Value = 7
Key = Six, Value = 6
Key = Ten, Value = 10
Key = Three, Value = 3
Key = Two, Value = 2
คุณสมบัติสำคัญของ SortedList
| Member | คำอธิบาย |
|---|---|
Count | จำนวน key-value pairs |
Add(key, value) | เพิ่ม (โยน exception หากคีย์ซ้ำ) |
Remove(key) / RemoveAt(index) | ลบตามคีย์/ดัชนี |
Clear() | ลบทั้งหมด |
ContainsKey(key) / ContainsValue(value) | ตรวจสอบมีอยู่ |
IndexOfKey(key) / IndexOfValue(value) | หาดัชนี (-1 หากไม่พบ) |
Keys / Values | ICollection คีย์/ค่า (เรียงแล้ว) |
GetKeyList() / GetValueList() | IList (เข้าถึงแบบ index ได้) |
Item[key] (indexer) | ได้/ตั้งค่า ด้วยคีย์ |
Generic Version: SortedList<TKey, TValue>
ในโค้ดใหม่ ใช้ System.Collections.Generic.SortedList<TKey, TValue>:
var list = new SortedList();
list.Add("A", 1);
list.Add("B", 2);
Console.WriteLine(list.Count); // 2
SortedList vs SortedDictionary
| คุณสมบัติ | SortedList | SortedDictionary |
|---|---|---|
| Internal Structure | 2 Arrays | Red-Black Tree |
| Memory | น้อยกว่า | มากกว่า |
| Insert/Delete | O(n) | O(log n) |
| Index Access | O(1) | ไม่รองรับ |
| Best For | Small data, read-heavy | Large data, write-heavy |