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)
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 };
ds.Add("An"); // Thêm cuối danh sách
ds.Insert(1, "Bình"); // Chèn vào vị trí thứ 1
string ten = (string)ds[0]; // Ép kiểu vì ArrayList lưu object
ds[1] = "Chi"; // Gán lại 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
foreach (object x in ds)
{
Console.WriteLine(x);
}
for (int i = 0; i < ds.Count; i++)
{
Console.WriteLine(ds[i]);
}
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 |
✅ Ư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
Đặ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 |
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:
Hướng dẫn chi tiết về ArrayList trong C#