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

Đảo ngược thứ tự phần tử trong ArrayList toàn bộ hoặc trong phạm vi chỉ định trong C#

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 index hoặc count không hợp lệ (ví dụ: vượt quá giới hạn), sẽ ném ra ngoại lệ ArgumentOutOfRangeException.
  • ArrayList là kiểu non-generic, hiện nay khuyến nghị sử dụng List<T> với phương thức Reverse() tương tự.