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

วิธีลบสมาชิกตามคีย์ที่ระบุจาก SortedList ใน C#

บทความนี้สาธิตวิธีการลบสมาชิก (element) ตามคีย์ที่ระบุจาก SortedList โดยใช้ method Remove(key)

ตัวอย่างที่ 1: ลบคีย์ "H" จาก SortedList

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.Remove("H");

        Console.WriteLine("\nEnumerator to iterate through the SortedList...");
        IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
        while (demoEnum.MoveNext())
        {
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
        }

        Console.WriteLine("Count of SortedList key-value pairs (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

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 = I, Value = 9
Key = J, Value = 10
Count of SortedList key-value pairs (Updated) = 9

ตัวอย่างที่ 2: ลบคีย์ "Three" จาก SortedList อีกตัว

using System;
using System.Collections;

public class Demo
{
    public static void Main(String[] args)
    {
        SortedList sortedList = new SortedList();
        sortedList.Add("One", "Mouse");
        sortedList.Add("Two", "Keyboard");
        sortedList.Add("Three", "Headphone");
        sortedList.Add("Four", "Speakers");
        sortedList.Add("Five", "RAM");

        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.Remove("Three");

        Console.WriteLine("\nEnumerator to iterate through the SortedList...");
        IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
        while (demoEnum.MoveNext())
        {
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
        }

        Console.WriteLine("Count of SortedList key-value pairs (Updated) = " + sortedList.Count);
    }
}

ผลลัพธ์

SortedList elements...
Key = Five, Value = RAM
Key = Four, Value = Speakers
Key = One, Value = Mouse
Key = Three, Value = Headphone
Key = Two, Value = Keyboard
Count of SortedList key-value pairs = 5

Enumerator to iterate through the SortedList...
Key = Five, Value = RAM
Key = Four, Value = Speakers
Key = One, Value = Mouse
Key = Two, Value = Keyboard
Count of SortedList key-value pairs (Updated) = 4

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

  • Remove(key) ลบรายการที่มีคีย์ตรงกับที่ระบุ คืนค่า void
  • ถ้าคีย์ไม่มีอยู่ จะไม่เกิด error - silent ignore
  • SortedList จัดเรียงตามคีย์อัตโนมัติ (alphabetical สำหรับ string)
  • ใช้ IDictionaryEnumerator ผ่าน GetEnumerator() สำหรับการวนลูปแบบเก่า
  • แนะนำใช้ foreach กับ DictionaryEntry แทนสำหรับโค้ดสมัยใหม่
  • เวลา complexity: O(log n) สำหรับการค้นหา + O(n) สำหรับการเลื่อน array = O(n) รวม