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

ลบองค์ประกอบทั้งหมดจาก SortedSet ใน C#

เมธอด Clear() ของ SortedSet<T> ใช้ลบองค์ประกอบทั้งหมด ทำให้ชุดข้อมูลว่างเปล่า (Count = 0) แต่ยังคงออบเจ็กต์ไว้ใช้งานได้

ตัวอย่างที่ 1: SortedSet<string> ก่อน/หลัง Clear

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        SortedSet<string> set1 = new SortedSet<string>();
        set1.Add("AB");
        set1.Add("BC");
        set1.Add("CD");
        set1.Add("EF");

        Console.WriteLine("องค์ประกอบใน SortedSet1...");
        foreach (string res in set1)
        {
            Console.WriteLine(res);
        }

        SortedSet<string> set2 = new SortedSet<string>();
        set2.Add("BC");
        set2.Add("CD");
        set2.Add("DE");
        set2.Add("EF");
        set2.Add("AB");
        set2.Add("HI");
        set2.Add("JK");

        Console.WriteLine("องค์ประกอบใน SortedSet2...");
        foreach (string res in set2)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("จำนวนองค์ประกอบใน SortedSet = " + set2.Count); // 7

        // ลบทั้งหมด
        set2.Clear();

        Console.WriteLine("จำนวนองค์ประกอบใน SortedSet (อัปเดต) = " + set2.Count); // 0
    }
}

ผลลัพธ์ (เรียงลำดับอัตโนมัติ)

องค์ประกอบใน SortedSet1...
AB
BC
CD
EF
องค์ประกอบใน SortedSet2...
AB
BC
CD
DE
EF
HI
JK
จำนวนองค์ประกอบใน SortedSet = 7
จำนวนองค์ประกอบใน SortedSet (อัปเดต) = 0

ตัวอย่างที่ 2: SortedSet<int>

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        SortedSet<int> set1 = new SortedSet<int>();
        set1.Add(100);
        set1.Add(200);
        set1.Add(300);
        set1.Add(400);

        Console.WriteLine("องค์ประกอบใน SortedSet...");
        foreach (int res in set1)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("จำนวนองค์ประกอบใน SortedSet = " + set1.Count); // 4

        set1.Clear();

        Console.WriteLine("จำนวนองค์ประกอบใน SortedSet (อัปเดต) = " + set1.Count); // 0
    }
}

ผลลัพธ์

องค์ประกอบใน SortedSet...
100
200
300
400
จำนวนองค์ประกอบใน SortedSet = 4
จำนวนองค์ประกอบใน SortedSet (อัปเดต) = 0

คุณสมบัติและเมธอดหลักของ SortedSet<T>

สมาชิกคำอธิบาย
Add(T)เพิ่มองค์ประกอบ (คืน true ถ้าเพิ่มสำเร็จ false ถ้ามีอยู่แล้ว)
Remove(T)ลบองค์ประกอบที่ระบุ
Clear()ลบทั้งหมด
Contains(T)ตรวจสอบว่ามีองค์ประกอบหรือไม่ O(log n)
Countจำนวนองค์ประกอบ
Min / Maxค่าต่ำสุด/สูงสุด (O(1))
GetViewBetweenดูช่วงย่อย (Subset view)
UnionWith, IntersectWith, ExceptWith, SymmetricExceptWithปฏิบัติการเซต

ข้อสังเกต

  • SortedSet<T> ใช้ Red-Black Tree รักษาลำดับเรียงอัตโนมัติ
  • การค้นหา แทรก ลบ ใช้เวลา O(log n)
  • ไม่อนุญาตค่าซ้ำ (เป็น Set)
  • ต้องการให้ T implements IComparable<T> หรือระบุ IComparer<T> ตอนสร้าง
  • หลัง Clear() สามารถ Add ใหม่ได้ทันที