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

การตรวจสอบว่า SortedList มีคีย์เฉพาะหรือไม่ใน C#

ภาพรวม

SortedList จัดเก็บคู่คีย์/ค่าเรียงลำดับตามคีย์ เมธอด Contains(key) ใช้ตรวจสอบว่ามีคีย์นั้นอยู่หรือไม่ คืน true/false

ตัวอย่างที่ 1: ตรวจสอบคีย์ "C" และอัปเดตค่า

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        SortedList list = new SortedList();
        list.Add("A", "Books");
        list.Add("B", "Electronics");
        list.Add("C", "Appliances");
        list.Add("D", "Pet Supplies");
        list.Add("E", "Clothing");
        list.Add("F", "Footwear");

        Console.WriteLine("Value associated with key E = " + list["E"]);
        list["E"] = "HDD";
        Console.WriteLine("Value associated with key E [Updated] = " + list["E"]);
        Console.Write("Does the list has key C? = " + list.Contains("C"));
    }
}

ผลลัพธ์

Value associated with key E = Clothing
Value associated with key E [Updated] = HDD
Does the list has key C? = True

ตัวอย่างที่ 2: ใช้ IDictionaryEnumerator วนลูปและตรวจสอบหลายคีย์

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.RemoveAt(3); // ลบ index 3 (คีย์ D)

        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);
        Console.WriteLine("\nDoes the list has key C? = " + sortedList.Contains("C"));
        Console.WriteLine("Does the list has key M? = " + sortedList.Contains("M"));
    }
}

ผลลัพธ์

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 = 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 (Updated) = 9
Does the list has key C? = True
Does the list has key M? = False

สรุป

  • Contains(key) ตรวจสอบคีย์ได้ใน O(log n) เนื่องจากเรียงลำดับแล้ว
  • ใช้ RemoveAt(index) ลบตามดัชนี (0-based)
  • IDictionaryEnumerator ให้คีย์และค่าในแต่ละรอบ