Giới thiệu
Trong C#, lớp ArrayList cung cấp phương thức Reverse() để đảo ngược thứ tự các phần tử. Bạn có thể đảo ngược toàn bộ danh sách hoặc chỉ một đoạn con bằng cách chỉ định chỉ số bắt đầu và số lượng phần tử.
1. Đảo ngược toàn bộ ArrayList
Sử dụng phương thức Reverse() không tham số để đảo ngược tất cả các phần tử.
Ví dụ
using System;
using System.Collections;
public class Demo
{
public static void Main(string[] args)
{
ArrayList list = new ArrayList();
list.Add("A");
list.Add("B");
list.Add("C");
list.Add("D");
list.Add("E");
list.Add("F");
list.Add("G");
list.Add("H");
list.Add("I");
Console.WriteLine("Phần tử trong ArrayList trước khi đảo:");
foreach (string item in list)
{
Console.WriteLine(item);
}
// Đảo ngược toàn bộ
list.Reverse();
Console.WriteLine("\nPhần tử trong ArrayList sau khi đảo:");
foreach (string item in list)
{
Console.WriteLine(item);
}
}
}
Kết quả
Phần tử trong ArrayList trước khi đảo:
A
B
C
D
E
F
G
H
I
Phần tử trong ArrayList sau khi đảo:
I
H
G
F
E
D
C
B
A
2. Đảo ngược một phạm vi chỉ định
Sử dụng nạp chồng Reverse(int index, int count) để đảo ngược count phần tử bắt đầu từ index.
Ví dụ
using System;
using System.Collections;
public class Demo
{
public static void Main(string[] args)
{
ArrayList list = new ArrayList();
list.Add("Andy");
list.Add("Gary");
list.Add("Katie");
list.Add("Amy");
// Thêm mảng string
string[] strArr = { "John", "Jacob" };
list.AddRange(strArr);
Console.WriteLine("Danh sách ban đầu:");
foreach (string item in list)
{
Console.WriteLine(item);
}
// Đảo ngược 3 phần tử bắt đầu từ chỉ số 1 (Gary, Katie, Amy)
list.Reverse(1, 3);
Console.WriteLine("\nDanh sách sau khi đảo ngược 3 phần tử từ chỉ số 1:");
foreach (string item in list)
{
Console.WriteLine(item);
}
}
}
Kết quả
Danh sách ban đầu:
Andy
Gary
Katie
Amy
John
Jacob
Danh sách sau khi đảo ngược 3 phần tử từ chỉ số 1:
Andy
Amy
Katie
Gary
John
Jacob
Lưu ý quan trọng
- Phương thức
Reverse()thay đổi trực tiếp trên danh sách hiện tại (in-place). - Nếu
indexhoặccountkhông hợp lệ (ví dụ: vượt quá giới hạn), sẽ ném ra ngoại lệArgumentOutOfRangeException. ArrayListlà kiểu non-generic, hiện nay khuyến nghị sử dụngList<T>với phương thứcReverse()tương tự.