SortedList มี property Keys ที่คืนค่า ICollection ของคีย์ทั้งหมด เรียงลำดับตามคีย์โดยอัตโนมัติ นอกจากนี้ยังมี Values สำหรับค่า และ GetKeyList()/GetValueList() ที่คืน IList
ตัวอย่างโค้ด: ดึงคีย์และค่าด้วย IndexOfKey
using System;
using System.Collections;
public class Demo
{
public static void Main(string[] args)
{
SortedList list = new SortedList();
list.Add("One", "Finance");
list.Add("Two", "Marketing");
list.Add("Three", "Sales");
list.Add("Four", "Purchase");
list.Add("Five", "Operations");
list.Add("Six", "IT");
Console.WriteLine("SortedList elements...");
foreach (DictionaryEntry d in list)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nIndex at key One = " + list.IndexOfKey("One"));
ICollection col = list.Keys;
Console.WriteLine("\nCollection of Keys...");
foreach (string res in col)
Console.WriteLine(res);
}
}
ผลลัพธ์
SortedList elements...
Five Operations
Four Purchase
One Finance
Six IT
Three Sales
Two Marketing
Index at key One = 2
Collection of Keys...
Five
Four
One
Six
Three
Two
ตัวอย่างเพิ่มเติม: หลาย SortedList
using System;
using System.Collections;
public class Demo
{
public static void Main(string[] args)
{
SortedList list1 = new SortedList();
list1.Add("One", 1);
list1.Add("Two", 2);
list1.Add("Three", 3);
list1.Add("Four", 4);
list1.Add("Five", 5);
list1.Add("Six", 6);
list1.Add("Seven", 7);
list1.Add("Eight", 8);
list1.Add("Nine", 9);
list1.Add("Ten", 10);
Console.WriteLine("SortedList1 elements...");
foreach (DictionaryEntry d in list1)
{
Console.WriteLine(d.Key + " " + d.Value);
}
ICollection col = list1.Keys;
Console.WriteLine("\nCollection of Keys in List1...");
foreach (string res in col)
Console.WriteLine(res);
SortedList list2 = new SortedList();
list2.Add("A", "Accessories");
list2.Add("B", "Books");
list2.Add("C", "Smart Wearable Tech");
list2.Add("D", "Home Appliances");
Console.WriteLine("\nSortedList2 elements...");
foreach (DictionaryEntry d in list2)
{
Console.WriteLine(d.Key + " " + d.Value);
}
col = list2.Keys;
Console.WriteLine("\nCollection of Keys in List2...");
foreach (string res in col)
Console.WriteLine(res);
}
}
ผลลัพธ์
SortedList1 elements...
Eight 8
Five 5
Four 4
Nine 9
One 1
Seven 7
Six 6
Ten 10
Three 3
Two 2
Collection of Keys in List1...
Eight
Five
Four
Nine
One
Seven
Six
Ten
Three
Two
SortedList2 elements...
A Accessories
B Books
C Smart Wearable Tech
D Home Appliances
Collection of Keys in List2...
A
B
C
D
สรุป Property และเมธอดที่เกี่ยวข้อง
| Member | ประเภท | คำอธิบาย |
|---|---|---|
Keys | ICollection | คอลเลกชันคีย์ เรียงลำดับแล้ว |
Values | ICollection | คอลเลกชันค่า ตามลำดับคีย์ |
GetKeyList() | IList | คีย์เป็น IList (รองรับ indexer) |
GetValueList() | IList | ค่าเป็น IList (รองรับ indexer) |
IndexOfKey(key) | int | ดัชนีของคีย์ (-1 หากไม่พบ) |
IndexOfValue(value) | int | ดัชนีแรกของค่า (-1 หากไม่พบ) |
หมายเหตุ
- คีย์ใน SortedList ไม่ซ้ำกัน (unique)
- การวนลูป
foreachบน Keys/Values ให้ลำดับเดียวกัน - ในโค้ดใหม่ ควรใช้
SortedDictionary<TKey, TValue>หรือSortedList<TKey, TValue>(generic version)