ภาพรวม
SortedList (ใน System.Collections) เก็บคู่คีย์/ค่าเรียงตามคีย์ เมธอด Clone() สร้าง shallow copy
ตัวอย่าง 1: Clone SortedList สตริง
using System;
using System.Collections;
public class Demo {
public static void Main(String[] args) {
SortedList list = new SortedList();
list.Add("A", "Jacob");
list.Add("B", "Sam");
list.Add("C", "Tom");
list.Add("D", "John");
list.Add("E", "Tim");
list.Add("F", "Mark");
list.Add("G", "Gary");
list.Add("H", "Nathan");
list.Add("I", "Shaun");
list.Add("J", "David");
Console.WriteLine("SortedList elements...");
foreach (DictionaryEntry d in list) {
Console.WriteLine(d.Key + " " + d.Value);
}
ICollection col1 = list.Values;
Console.WriteLine("\nValues...");
foreach (string s in col1)
Console.WriteLine(s);
ICollection col2 = list.Keys;
Console.WriteLine("\nKeys...");
foreach (string s in col2)
Console.WriteLine(s);
SortedList list2 = (SortedList)list.Clone();
Console.WriteLine("\nResultant SortedList...cloned from above list");
foreach (DictionaryEntry d in list) {
Console.WriteLine(d.Key + " " + d.Value);
}
}
}
ผลลัพธ์ตัวอย่าง 1
SortedList elements... A Jacob B Sam C Tom D John E Tim F Mark G Gary H Nathan I Shaun J David Values... Jacob Sam Tom John Tim Mark Gary Nathan Shaun David Keys... A B C D E F G H I J Resultant SortedList...cloned from above list A Jacob B Sam C Tom D John E Tim F Mark G Gary H Nathan I Shaun J David
ตัวอย่าง 2: SortedList อื่นและ GetValueList
using System;
using System.Collections;
public class Demo {
public static void Main(String[] args) {
SortedList list = new SortedList();
list.Add("One", "IT");
list.Add("Two ", "Operations");
list.Add("Three", "Marketing");
list.Add("Four", "Purchase");
list.Add("Five", "Sales");
list.Add("Six", "Finance");
Console.WriteLine("SortedList elements...");
foreach (DictionaryEntry d in list) {
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nList of values...SortedList");
IList col = list.GetValueList();
foreach (string res in col) {
Console.WriteLine(res);
}
Console.WriteLine("\nSortedList is read-only? = " + list.IsReadOnly);
SortedList list2 = (SortedList)list.Clone();
Console.WriteLine("\nResultant SortedList...cloned from above list");
foreach (DictionaryEntry d in list) {
Console.WriteLine(d.Key + " " + d.Value);
}
}
}
ผลลัพธ์ตัวอย่าง 2
SortedList elements... Five Sales Four Purchase One IT Six Finance Three Marketing Two Operations List of values...SortedList Sales Purchase IT Finance Marketing Operations SortedList is read-only? = False Resultant SortedList...cloned from above list Five Sales Four Purchase One IT Six Finance Three Marketing Two Operations
สรุป
Clone()สร้าง SortedList ใหม่ คัดลอกอ้างอิง (shallow)- คีย์ถูกเรียงลำดับอัตโนมัติ (ตามค่าเริ่มต้นของ comparer)
GetValueList()และGetKeyList()คืน IList view