ArrayList trong C#

Hướng dẫn chi tiết về ArrayList trong C#

  1. ArrayList là gì?
  2. Khai báo và khởi tạo ArrayList
  3. Thêm phần tử vào ArrayList
  4. Truy cập và sửa phần tử ArrayList
  5. Xóa phần tử
  6. Duyệt qua danh sách ArrayList
  7. Một số phương thức quan trọng
  8. Ưu điểm và nhược điểm của ArrayList
  9. So sánh với List (Generic)
  10. Ví dụ tổng hợp

1. ArrayList là gì?

ArrayList là một danh sách (list) động trong C# thuộc namespace System.Collections.

👉 Đặc điểm chính:

    Có thể chứa nhiều kiểu dữ liệu khác nhau (vì phần tử là object)
    Tự động co giãn kích thước khi thêm hoặc xóa phần tử
    Thích hợp dùng trong các chương trình đơn giản, chưa quan tâm đến kiểu dữ liệu cụ thể (generic)

2. Khai báo và khởi tạo ArrayList

using System.Collections;
ArrayList ds = new ArrayList();

Có thể khởi tạo với dữ liệu có sẵn:

ArrayList ds = new ArrayList() { "An", 123, true };

3. Thêm phần tử vào ArrayList

ds.Add("An");            // Thêm cuối danh sách
ds.Insert(1, "Bình");    // Chèn vào vị trí thứ 1

4. Truy cập và sửa phần tử ArrayList

string ten = (string)ds[0]; // Ép kiểu vì ArrayList lưu object
ds[1] = "Chi";              // Gán lại phần tử

5. Xóa phần tử

ds.Remove("An");     // Xóa phần tử theo giá trị
ds.RemoveAt(1);      // Xóa phần tử tại vị trí 1
ds.Clear();          // Xóa toàn bộ danh sách

6. Duyệt qua danh sách ArrayList

foreach (object x in ds)
{
    Console.WriteLine(x);
}


Hoặc dùng for:

for (int i = 0; i < ds.Count; i++)
{
    Console.WriteLine(ds[i]);
}

7. Một số phương thức quan trọng

Phương thức / thuộc tính Mô tả
.Add(value) Thêm phần tử vào cuối
.Insert(index, value) Chèn vào vị trí chỉ định
.Remove(value) Xóa phần tử đầu tiên có giá trị
.RemoveAt(index) Xóa phần tử tại vị trí
.Clear() Xóa toàn bộ danh sách
.Count Số phần tử hiện có
.Sort() Sắp xếp tăng dần
.Reverse() Đảo ngược thứ tự
.Contains(value) Kiểm tra có chứa giá trị
.IndexOf(value) Trả về vị trí của phần tử
.ToArray() Chuyển thành mảng thông thường
.AddRange(list) Thêm nhiều phần tử từ danh sách khác

8. Ưu điểm và nhược điểm của ArrayList

✅ Ưu điểm:

    Dễ dùng
    Không cần xác định kích thước ban đầu
    Có sẵn nhiều phương thức hỗ trợ xử lý danh sách

❌ Nhược điểm:

    Không an toàn kiểu dữ liệu (phải ép kiểu thủ công)
    Hiệu suất kém hơn List<T> nếu dùng trong chương trình lớn
    Dễ phát sinh lỗi run-time do ép kiểu sai

9. So sánh với List<T> (Generic)

Đặc điểm ArrayList List<T>
Kiểu dữ liệu object (không cụ thể) Kiểu cụ thể (string, int...)
An toàn kiểu dữ liệu ❌ Không ✅ Có
Cần ép kiểu ✅ Có ❌ Không
Hiệu suất Trung bình Tốt hơn
Nên dùng khi nào? Khi học cơ bản hoặc xử lý dữ liệu linh hoạt tạm thời Khi làm dự án thật hoặc cần tối ưu, an toàn

10. Ví dụ tổng hợp

using System;
using System.Collections;
class Program
{
    static void Main()
    {
        ArrayList ds = new ArrayList();

        ds.Add("An");
        ds.Add("Bình");
        ds.Add("Chi");

        ds.Insert(1, "Dũng");
        ds.Remove("Chi");

        Console.WriteLine("Số lượng: " + ds.Count);

        foreach (object ten in ds)
        {
            Console.WriteLine("- " + ten);
        }

        ds.Sort(); // nếu toàn bộ là string
        ds.Reverse();
    }
}

Tìm kiếm:

Bài viết liên quan:

Hướng dẫn chi tiết về ArrayList trong C#