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

Lấy số phần tử thực tế trong ArrayList C#

Giới thiệu

Thuộc tính Count của ArrayList trả về số phần tử thực tế đang chứa. Khác với Capacity (dung lượng mảng nội bộ, tự mở rộng).

Ví dụ 1: Ba ArrayList, gán 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ử 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("Các phần tử ArrayList2...");
        foreach (string res in list2)
        {
            Console.WriteLine(res);
        }

        ArrayList list3 = new ArrayList();
        Console.WriteLine("Dung lượng hiện tại ArrayList3: " + list3.Capacity);
        list3 = list2; // gán tham chiếu
        Console.WriteLine("Dung lượng ArrayList3 (cập nhật) " + list3.Capacity);
        Console.WriteLine("ArrayList3 bằng ArrayList2? = " + list3.Equals(list2));
        Console.WriteLine("Số phần tử ArrayList2 = " + list2.Count);
        list2.Clear();
        Console.WriteLine("Số phần tử ArrayList2 (cập nhật) = " + list2.Count);
    }
}

Kết quả

Các phần tử ArrayList1...
A
B
C
D
E
F
G
H
I
Các phần tử ArrayList2...
A
B
C
D
E
F
G
H
I
Dung lượng hiện tại ArrayList3: 0
Dung lượng ArrayList3 (cập nhật) 16
ArrayList3 bằng ArrayList2? = True
Số phần tử ArrayList2 = 9
Số phần tử ArrayList2 (cập nhật) = 0

Ví dụ 2: Capacity ban đầu và gán 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("Dung lượng ArrayList1: " + list1.Capacity);
        Console.WriteLine("Các phần tử 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("Các phần tử ArrayList2...");
        foreach (string res in list2)
        {
            Console.WriteLine(res);
        }

        ArrayList list3 = new ArrayList();
        list3 = list2;
        Console.WriteLine("ArrayList3 bằng ArrayList2? = " + list3.Equals(list2));
    }
}

Kết quả

Dung lượng ArrayList1: 16
Các phần tử ArrayList1...
A
B
C
D
E
F
G
H
I
Các phần tử ArrayList2...
A
B
C
D
E
F
G
H
I
ArrayList3 bằng ArrayList2? = True

Phân biệt Count vs Capacity

  • Capacity tự động tăng (thường gấp đôi) khi Add vượt quá.
  • Có thể set Capacity thủ công để tối ưu hiệu suất.
  • TrimToSize() giảm Capacity xuống bằng Count.
Thuộc tínhÝ nghĩa
CountSố phần tử thực tế
CapacityKích thước mảng nội bộ (>= Count)