Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ดึงรายการคีย์ของออบเจ็กต์ SortedList ใน C#

ภาพรวม

เมธอด SortedList.GetKeyList() คืนค่า IList ที่มีคีย์ทั้งหมดเรียงตามลำดับ (ซึ่งเป็นลำดับธรรมชาติของ SortedList)

ตัวอย่างที่ 1: ดึงคีย์จาก 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);
        }
        Console.WriteLine("\nList of keys...SortedList1");
        IList list = list1.GetKeyList();
        foreach(string res in list)
            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);
        }
        Console.WriteLine("\nList of keys...SortedList2");
        list = list2.GetKeyList();
        foreach(string res in list)
            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
List of keys...SortedList1
Eight
Five
Four
Nine
One
Seven
Six
Ten
Three
Two
SortedList2 elements...
A Accessories
B Books
C Smart Wearable Tech
D Home Appliances
List of keys...SortedList2
A
B
C
D

ตัวอย่างที่ 2: ดึงคีย์จาก SortedList เดียว

using System;
using System.Collections;

public class Demo
{
    public static void Main(String[] args)
    {
        SortedList list = new SortedList();
        list.Add("One", 1);
        list.Add("Two ", 2);
        list.Add("Three ", 3);
        list.Add("Four", 4);
        list.Add("Five", 5);
        Console.WriteLine("SortedList elements...");
        foreach(DictionaryEntry d in list)
        {
            Console.WriteLine(d.Key + " " + d.Value);
        }
        Console.WriteLine("\nList of keys...SortedList");
        IList col = list.GetKeyList();
        foreach(string res in col)
            Console.WriteLine(res);
    }
}

ผลลัพธ์

SortedList elements...
Five 5
Four 4
One 1
Three  3
Two  2
List of keys...SortedList
Five
Four
One
Three
Two

คำอธิบายเพิ่มเติม

  • GetKeyList() คืนค่า IList view ของคีย์ การเปลี่ยนแปลง SortedList สะท้อนไปยัง IList นี้
  • คีย์ต้องเป็นชนิดที่รองรับการเปรียบเทียด (implement IComparable) เพื่อให้เรียงลำดับได้
  • SortedList ไม่อนุญาตคีย์ซ้ำ (duplicate keys) จะโยน ArgumentException
  • การเข้าถึงคีย์โดยดัชนี: list.GetKey(index) หรือผ่าน IList ที่ได้จาก GetKeyList()