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

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

ภาพรวม

List<T> ใน namespace System.Collections.Generic เป็นรายการแบบไดนามิกที่รองรับการเพิ่ม ลบ และเข้าถึงด้วยดัชนี เมธอด Clear() ใช้ลบองค์ประกอบทั้งหมด ทำให้ Count เท่ากับ 0 แต่ Capacity คงเดิม

ตัวอย่างที่ 1: ลบข้อมูลจาก List ที่สองและเปรียบเทียบ

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main(String[] args)
    {
        List<String> list1 = new List<String>();
        list1.Add("One");
        list1.Add("Two");
        list1.Add("Three");
        list1.Add("Four");
        list1.Add("Five");
        Console.WriteLine("Elements in List1...");
        foreach (string res in list1)
        {
            Console.WriteLine(res);
        }
        List<String> list2 = new List<String>();
        list2.Add("India");
        list2.Add("US");
        list2.Add("UK");
        list2.Add("Canada");
        list2.Add("Poland");
        list2.Add("Netherlands");
        Console.WriteLine("Elements in List2...");
        foreach (string res in list2)
        {
            Console.WriteLine(res);
        }
        Console.WriteLine("\nIs List2 equal to List1? = " + list2.Equals(list1));
        Console.WriteLine("\nCount of elements in list2 = " + list2.Count);
        list2.Clear();
        Console.WriteLine("\nCount of elements in list2 (updated) = " + list2.Count);
    }
}

ผลลัพธ์

Elements in List1...
One
Two
Three
Four
Five
Elements in List2...
India
US
UK
Canada
Poland
Netherlands
Is List2 equal to List1? = False
Count of elements in list2 = 6
Count of elements in list2 (updated) = 0

ตัวอย่างที่ 2: ลบข้อมูลจาก List เดียว

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main(String[] args)
    {
        List<String> list = new List<String>();
        list.Add("One");
        list.Add("Two");
        list.Add("Three");
        list.Add("Four");
        list.Add("Five");
        Console.WriteLine("Elements in List1...");
        foreach (string res in list)
        {
            Console.WriteLine(res);
        }
        Console.WriteLine("\nCount of elements in list = " + list.Count);
        list.Clear();
        Console.WriteLine("\nCount of elements in list (updated) = " + list.Count);
    }
}

ผลลัพธ์

Elements in List1...
One
Two
Three
Four
Five
Count of elements in list = 5
Count of elements in list (updated) = 0

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

  • Clear() มีความซับซ้อน O(n) โดย n คือจำนวนองค์ประกอบ
  • Capacity ไม่เปลี่ยนหลัง Clear() หากต้องการปล่อยหน่วยความจำ ให้ใช้ TrimExcess() หรือสร้าง List ใหม่
  • Equals() สำหรับ List จะเปรียบเทียบอ้างอิง (reference equality) ไม่ใช่ค่า
  • List<T> แนะนำให้ใช้แทน ArrayList สำหรับโค้ดใหม่ เพราะเป็น type-safe และมีประสิทธิภาพดีกว่า