C#中,有多種方法可以反轉 List<T> 的元素順序。以下是幾種常見的方法:
方法一:使用 List<T>.Reverse 方法
List<T> 類提供了一個內置的 Reverse 方法,可以就地反轉列表中的元素順序。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("Original list:");
Console.WriteLine(string.Join(", ", numbers));
numbers.Reverse();
Console.WriteLine("Reversed list:");
Console.WriteLine(string.Join(", ", numbers));
}
}
方法二:使用 Stack<T>
可以將 List<T> 中的元素壓入一個 Stack<T> 中,然后再從 Stack<T> 中彈出元素以構建一個新的列表。因為棧是后進先出的數據結構,所以這種方法可以反轉元素的順序。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("Original list:");
Console.WriteLine(string.Join(", ", numbers));
Stack<int> stack = new Stack<int>(numbers);
List<int> reversedNumbers = new List<int>(stack);
Console.WriteLine("Reversed list:");
Console.WriteLine(string.Join(", ", reversedNumbers));
}
}
方法三:使用 LINQ
可以使用 LINQ 的 Reverse 方法來創建一個新的反轉后的列表。
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("Original list:");
Console.WriteLine(string.Join(", ", numbers));
var reversedNumbers = numbers.Reverse().ToList();
Console.WriteLine("Reversed list:");
Console.WriteLine(string.Join(", ", reversedNumbers));
}
}
方法四:手動反轉
可以手動遍歷列表,并使用一個輔助列表或數組來存儲反轉后的元素。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("Original list:");
Console.WriteLine(string.Join(", ", numbers));
List<int> reversedNumbers = new List<int>();
for (int i = numbers.Count - 1; i >= 0; i--)
{
reversedNumbers.Add(numbers[i]);
}
Console.WriteLine("Reversed list:");
Console.WriteLine(string.Join(", ", reversedNumbers));
}
}
以上方法各有優缺點,選擇哪種方法取決于具體的應用場景和需求。通常來說,使用 List<T>.Reverse 方法是最簡單和高效的選擇。
該文章在 2025/1/10 12:22:02 編輯過