Lớp Array cung cấp phương thức tĩnh Reverse() để đảo ngược thứ tự phần tử mảng trực tiếp (in-place).
Mã nguồn
using System;
class Demo {
static void Main() {
int[] arr = { 15, 16, 17, 18 };
Console.WriteLine("Mảng gốc:");
foreach (int i in arr) Console.WriteLine(i);
// Đảo ngược mảng (thay đổi mảng gốc)
Array.Reverse(arr);
Console.WriteLine("Mảng sau khi đảo:");
foreach (int j in arr) Console.WriteLine(j);
Console.ReadLine();
}
}
Kết quả
Mảng gốc:
15
16
17
18
Mảng sau khi đảo:
18
17
16
15
Các overload hữu ích
// Đảo ngược toàn bộ mảng
Array.Reverse(arr);
// Đảo ngược đoạn con: từ index 1, dài 3 phần tử
Array.Reverse(arr, 1, 3);
Lưu ý
Array.Reversesửa đổi mảng gốc — không trả về mảng mới.- Để giữ mảng gốc, hãy sao chép trước:
var copy = (int[])arr.Clone(); Array.Reverse(copy); - LINQ:
var reversed = arr.Reverse().ToArray();(trả về mảng mới, không sửa gốc). - Hoạt động với mọi kiểu mảng:
string[],object[], custom struct...
So sánh
| Phương pháp | Sửa mảng gốc? | Trả về mảng mới? | Hiệu năng |
|---|---|---|---|
Array.Reverse(arr) | Có | Không | Nhanh nhất (O(n), in-place) |
arr.Reverse().ToArray() (LINQ) | Không | Có | Chậm hơn (cấp phát mới) |
| Vòng lặp for thủ công | Tùy code | Tùy code | Tương đương Array.Reverse |