Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Xóa tất cả phần tử khỏi ArrayList trong C#

Để xóa tất cả các phần tử khỏi ArrayList trong C#, bạn sử dụng phương thức Clear(). Phương thức này loại bỏ tất cả các mục và đặt thuộc tính Count về 0.

Ví dụ 1: Xóa tất cả và so sánh tham chiếu

using System;
using System.Collections;

public class Demo
{
    public static void Main(string[] args)
    {
        ArrayList list1 = new ArrayList();
        list1.Add("A");
        list1.Add("B");
        list1.Add("C");
        list1.Add("D");
        list1.Add("E");
        list1.Add("F");
        list1.Add("G");
        list1.Add("H");
        list1.Add("I");

        Console.WriteLine("Các phần tử trong ArrayList1...");
        foreach (string res in list1)
        {
            Console.WriteLine(res);
        }

        ArrayList list2 = new ArrayList();
        list2.Add("A");
        list2.Add("B");
        list2.Add("C");
        list2.Add("D");
        list2.Add("E");
        list2.Add("F");
        list2.Add("G");
        list2.Add("H");
        list2.Add("I");

        Console.WriteLine("\nCác phần tử trong ArrayList2...");
        foreach (string res in list2)
        {
            Console.WriteLine(res);
        }

        // Tạo tham chiếu list3 trỏ đến list2
        ArrayList list3 = list2;
        Console.WriteLine("\nArrayList3 bằng ArrayList2? = " + list3.Equals(list2));

        Console.WriteLine("Số lượng phần tử trong ArrayList2 = " + list2.Count);

        // Xóa tất cả phần tử
        list2.Clear();

        Console.WriteLine("Số lượng phần tử trong ArrayList2 (đã cập nhật) = " + list2.Count);
    }
}

Kết quả

Các phần tử trong ArrayList1...
A
B
C
D
E
F
G
H
I

Các phần tử trong ArrayList2...
A
B
C
D
E
F
G
H
I
ArrayList3 bằng ArrayList2? = True
Số lượng phần tử trong ArrayList2 = 9
Số lượng phần tử trong ArrayList2 (đã cập nhật) = 0

Ví dụ 2: ArrayList đơn giản

using System;
using System.Collections;

public class Demo
{
    public static void Main(string[] args)
    {
        ArrayList arrList = new ArrayList();
        arrList.Add("One");
        arrList.Add("Two");
        arrList.Add("Three");
        arrList.Add("Four");
        arrList.Add("Five");

        Console.WriteLine("Các phần tử trong ArrayList...");
        foreach (string res in arrList)
        {
            Console.WriteLine(res);
        }

        Console.WriteLine("Số lượng phần tử trong ArrayList = " + arrList.Count);

        arrList.Clear();

        Console.WriteLine("Số lượng phần tử trong ArrayList (đã cập nhật) = " + arrList.Count);
    }
}

Kết quả

Các phần tử trong ArrayList...
One
Two
Three
Four
Five
Số lượng phần tử trong ArrayList = 5
Số lượng phần tử trong ArrayList (đã cập nhật) = 0

Lưu ý quan trọng về tham chiếu

⚠️ Cảnh báo: ArrayList list3 = list2; tạo tham chiếu (reference) đến cùng một đối tượng, không phải bản sao. Khi list2.Clear() được gọi, list3.Count cũng trả về 0 vì chúng trỏ đến cùng bộ nhớ.
// Để tạo bản sao độc lập:
ArrayList list3 = new ArrayList(list2); // Copy constructor
// Hoặc
ArrayList list3 = new ArrayList();
list3.AddRange(list2);

Clear() vs Capacity

ArrayList list = new ArrayList();
list.Add("A");
list.Add("B");
list.Add("C");

Console.WriteLine($"Count: {list.Count}, Capacity: {list.Capacity}");
// Count: 3, Capacity: 4 (mặc định gấp đôi)

list.Clear();
Console.WriteLine($"Count: {list.Count}, Capacity: {list.Capacity}");
// Count: 0, Capacity: 4 (Capacity KHÔNG thay đổi)

// Để giải phóng bộ nhớ:
list.TrimToSize(); // Capacity = 0
// Hoặc gán null để GC thu gom
list = null;

ArrayList vs List<T> (Khuyến nghị)

Đặc điểm ArrayList List<T>
Type-safe Không (object) Có (Generic)
Hiệu năng Boxing/Unboxing Không boxing
Clear() Có Có
Trạng thái Đã lỗi thời Khuyến nghị
// List<T> - cách hiện đại
List<string> list = new List<string> { "One", "Two", "Three" };
list.Clear(); // Tương tự nhưng type-safe
Console.WriteLine(list.Count); // 0

Các phương thức xóa khác

Phương thức Mô tả
Remove(object) Xóa lần xuất hiện đầu tiên
RemoveAt(int index) Xóa tại chỉ mục
RemoveRange(int index, int count) Xóa dải phần tử
Clear() Xóa tất cả