List<T>.Reverse Method

Definition

List<T> 或它的一部分中元素的顺序反转。Reverses the order of the elements in the List<T> or a portion of it.

Overloads

Reverse()

将整个 List<T> 中元素的顺序反转。Reverses the order of the elements in the entire List<T>.

Reverse(Int32, Int32)

将指定范围中元素的顺序反转。Reverses the order of the elements in the specified range.

Reverse()

将整个 List<T> 中元素的顺序反转。Reverses the order of the elements in the entire List<T>.

public:
 void Reverse();
public void Reverse ();
member this.Reverse : unit -> unit
Public Sub Reverse ()

Examples

下面的示例演示 Reverse 方法的两个重载。The following example demonstrates both overloads of the Reverse method. 该示例创建了一个字符串 List<T>,并添加了六个字符串。The example creates a List<T> of strings and adds six strings. 使用 Reverse() 方法重载来反转列表,然后使用 Reverse(Int32, Int32) 方法重载反转列表中间,从元素1开始,包含四个元素。The Reverse() method overload is used to reverse the list, and then the Reverse(Int32, Int32) method overload is used to reverse the middle of the list, beginning with element 1 and encompassing four elements.

using namespace System;
using namespace System::Collections::Generic;

void main()
{
    List<String^>^ dinosaurs = gcnew List<String^>();

    dinosaurs->Add("Pachycephalosaurus");
    dinosaurs->Add("Parasauralophus");
    dinosaurs->Add("Mamenchisaurus");
    dinosaurs->Add("Amargasaurus");
    dinosaurs->Add("Coelophysis");
    dinosaurs->Add("Oviraptor");

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs)
    {
        Console::WriteLine(dinosaur);
    }

    dinosaurs->Reverse();

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs)
    {
        Console::WriteLine(dinosaur);
    }

    dinosaurs->Reverse(1, 4);

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs)
    {
        Console::WriteLine(dinosaur);
    }
}

/* This code example produces the following output:

Pachycephalosaurus
Parasauralophus
Mamenchisaurus
Amargasaurus
Coelophysis
Oviraptor

Oviraptor
Coelophysis
Amargasaurus
Mamenchisaurus
Parasauralophus
Pachycephalosaurus

Oviraptor
Parasauralophus
Mamenchisaurus
Amargasaurus
Coelophysis
Pachycephalosaurus
 */
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Pachycephalosaurus");
        dinosaurs.Add("Parasauralophus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Coelophysis");
        dinosaurs.Add("Oviraptor");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        dinosaurs.Reverse();

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        dinosaurs.Reverse(1, 4);

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }
    }
}

/* This code example produces the following output:

Pachycephalosaurus
Parasauralophus
Mamenchisaurus
Amargasaurus
Coelophysis
Oviraptor

Oviraptor
Coelophysis
Amargasaurus
Mamenchisaurus
Parasauralophus
Pachycephalosaurus

Oviraptor
Parasauralophus
Mamenchisaurus
Amargasaurus
Coelophysis
Pachycephalosaurus
 */
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs As New List(Of String)

        dinosaurs.Add("Pachycephalosaurus")
        dinosaurs.Add("Parasauralophus")
        dinosaurs.Add("Mamenchisaurus")
        dinosaurs.Add("Amargasaurus")
        dinosaurs.Add("Coelophysis")
        dinosaurs.Add("Oviraptor")

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        dinosaurs.Reverse()

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        dinosaurs.Reverse(1, 4)

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

    End Sub
End Class

' This code example produces the following output:
'
'Pachycephalosaurus
'Parasauralophus
'Mamenchisaurus
'Amargasaurus
'Coelophysis
'Oviraptor
'
'Oviraptor
'Coelophysis
'Amargasaurus
'Mamenchisaurus
'Parasauralophus
'Pachycephalosaurus
'
'Oviraptor
'Parasauralophus
'Mamenchisaurus
'Amargasaurus
'Coelophysis
'Pachycephalosaurus

Remarks

此方法使用 Array.Reverse 反转元素的顺序。This method uses Array.Reverse to reverse the order of the elements.

此方法的运算复杂度为 O (n),其中nCountThis method is an O(n) operation, where n is Count.

Reverse(Int32, Int32)

将指定范围中元素的顺序反转。Reverses the order of the elements in the specified range.

public:
 void Reverse(int index, int count);
public void Reverse (int index, int count);
member this.Reverse : int * int -> unit
Public Sub Reverse (index As Integer, count As Integer)

Parameters

index
Int32

要反转的范围的从零开始的起始索引。The zero-based starting index of the range to reverse.

count
Int32

要反转的范围内的元素数。The number of elements in the range to reverse.

Exceptions

index 小于 0。index is less than 0.

- 或 --or- count 小于 0。count is less than 0.

indexcount 不表示 List<T> 中元素的有效范围。index and count do not denote a valid range of elements in the List<T>.

Examples

下面的示例演示 Reverse 方法的两个重载。The following example demonstrates both overloads of the Reverse method. 该示例创建了一个字符串 List<T>,并添加了六个字符串。The example creates a List<T> of strings and adds six strings. 使用 Reverse() 方法重载来反转列表,然后使用 Reverse(Int32, Int32) 方法重载反转列表中间,从元素1开始,包含四个元素。The Reverse() method overload is used to reverse the list, and then the Reverse(Int32, Int32) method overload is used to reverse the middle of the list, beginning with element 1 and encompassing four elements.

using namespace System;
using namespace System::Collections::Generic;

void main()
{
    List<String^>^ dinosaurs = gcnew List<String^>();

    dinosaurs->Add("Pachycephalosaurus");
    dinosaurs->Add("Parasauralophus");
    dinosaurs->Add("Mamenchisaurus");
    dinosaurs->Add("Amargasaurus");
    dinosaurs->Add("Coelophysis");
    dinosaurs->Add("Oviraptor");

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs)
    {
        Console::WriteLine(dinosaur);
    }

    dinosaurs->Reverse();

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs)
    {
        Console::WriteLine(dinosaur);
    }

    dinosaurs->Reverse(1, 4);

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs)
    {
        Console::WriteLine(dinosaur);
    }
}

/* This code example produces the following output:

Pachycephalosaurus
Parasauralophus
Mamenchisaurus
Amargasaurus
Coelophysis
Oviraptor

Oviraptor
Coelophysis
Amargasaurus
Mamenchisaurus
Parasauralophus
Pachycephalosaurus

Oviraptor
Parasauralophus
Mamenchisaurus
Amargasaurus
Coelophysis
Pachycephalosaurus
 */
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Pachycephalosaurus");
        dinosaurs.Add("Parasauralophus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Coelophysis");
        dinosaurs.Add("Oviraptor");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        dinosaurs.Reverse();

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        dinosaurs.Reverse(1, 4);

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }
    }
}

/* This code example produces the following output:

Pachycephalosaurus
Parasauralophus
Mamenchisaurus
Amargasaurus
Coelophysis
Oviraptor

Oviraptor
Coelophysis
Amargasaurus
Mamenchisaurus
Parasauralophus
Pachycephalosaurus

Oviraptor
Parasauralophus
Mamenchisaurus
Amargasaurus
Coelophysis
Pachycephalosaurus
 */
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs As New List(Of String)

        dinosaurs.Add("Pachycephalosaurus")
        dinosaurs.Add("Parasauralophus")
        dinosaurs.Add("Mamenchisaurus")
        dinosaurs.Add("Amargasaurus")
        dinosaurs.Add("Coelophysis")
        dinosaurs.Add("Oviraptor")

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        dinosaurs.Reverse()

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        dinosaurs.Reverse(1, 4)

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

    End Sub
End Class

' This code example produces the following output:
'
'Pachycephalosaurus
'Parasauralophus
'Mamenchisaurus
'Amargasaurus
'Coelophysis
'Oviraptor
'
'Oviraptor
'Coelophysis
'Amargasaurus
'Mamenchisaurus
'Parasauralophus
'Pachycephalosaurus
'
'Oviraptor
'Parasauralophus
'Mamenchisaurus
'Amargasaurus
'Coelophysis
'Pachycephalosaurus

Remarks

此方法使用 Array.Reverse 反转元素的顺序。This method uses Array.Reverse to reverse the order of the elements.

此方法的运算复杂度为 O (n),其中nCountThis method is an O(n) operation, where n is Count.

Applies to