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

การได้จำนวนสมาชิกใน SortedList ใน C#

SortedList มี property Count คืนค่าจำนวนคีย์-ค่า (key-value pairs) ในลิสต์ ทำงานใน O(1) นอกจากนี้ยังมี Clear() ลบทั้งหมด และ GetEnumerator() สำหรับวนลูป

ตัวอย่างโค้ดที่ 1: เพิ่ม 10 รายการ แล้ว Clear

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.Clear();
        Console.WriteLine("Count of SortedList (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
Count of SortedList (updated) = 0

ตัวอย่างโค้ดที่ 2: ใช้ Enumerator วนลูป

using System;
using System.Collections;

public class Demo
{
    public static void Main(string[] args)
    {
        SortedList sortedList = new SortedList();
        sortedList.Add("One", "1");
        sortedList.Add("Two", "2");
        sortedList.Add("Three", "3");
        sortedList.Add("Four", "4");
        sortedList.Add("Five", "5");
        sortedList.Add("Six", "6");
        sortedList.Add("Seven", "7");
        sortedList.Add("Eight", "8");
        sortedList.Add("Nine", "9");
        sortedList.Add("Ten", "10");

        Console.WriteLine("Count of SortedList key-value pairs = " + sortedList.Count);
        Console.WriteLine("Enumerator to iterate through the SortedList...");
        IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
        while (demoEnum.MoveNext())
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
    }
}

ผลลัพธ์

Count of SortedList key-value pairs = 10
Enumerator to iterate through the SortedList...
Key = Eight, Value = 8
Key = Five, Value = 5
Key = Four, Value = 4
Key = Nine, Value = 9
Key = One, Value = 1
Key = Seven, Value = 7
Key = Six, Value = 6
Key = Ten, Value = 10
Key = Three, Value = 3
Key = Two, Value = 2

คุณสมบัติสำคัญของ SortedList

Memberคำอธิบาย
Countจำนวน key-value pairs
Add(key, value)เพิ่ม (โยน exception หากคีย์ซ้ำ)
Remove(key) / RemoveAt(index)ลบตามคีย์/ดัชนี
Clear()ลบทั้งหมด
ContainsKey(key) / ContainsValue(value)ตรวจสอบมีอยู่
IndexOfKey(key) / IndexOfValue(value)หาดัชนี (-1 หากไม่พบ)
Keys / ValuesICollection คีย์/ค่า (เรียงแล้ว)
GetKeyList() / GetValueList()IList (เข้าถึงแบบ index ได้)
Item[key] (indexer)ได้/ตั้งค่า ด้วยคีย์

Generic Version: SortedList<TKey, TValue>

ในโค้ดใหม่ ใช้ System.Collections.Generic.SortedList<TKey, TValue>:


var list = new SortedList();
list.Add("A", 1);
list.Add("B", 2);
Console.WriteLine(list.Count); // 2

SortedList vs SortedDictionary

คุณสมบัติSortedListSortedDictionary
Internal Structure2 ArraysRed-Black Tree
Memoryน้อยกว่ามากกว่า
Insert/DeleteO(n)O(log n)
Index AccessO(1)ไม่รองรับ
Best ForSmall data, read-heavyLarge data, write-heavy