如何轻松反转C# List<T>中的元素次序

打印 上一主题 下一主题

主题 796|帖子 796|积分 2388

在C#中,有多种方法可以反转 List<T> 的元素次序。以下是几种常见的方法:
方法一:使用 List<T>.Reverse 方法

List<T> 类提供了一个内置的 Reverse 方法,可以当场反转列表中的元素次序。
  1. using System;
  2. using System.Collections.Generic;
  3. class Program
  4. {
  5.     static void Main()
  6.     {
  7.         List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
  8.         Console.WriteLine("Original list:");
  9.         Console.WriteLine(string.Join(", ", numbers));
  10.         numbers.Reverse();
  11.         Console.WriteLine("Reversed list:");
  12.         Console.WriteLine(string.Join(", ", numbers));
  13.     }
  14. }
复制代码
方法二:使用 Stack<T>

可以将 List<T> 中的元素压入一个 Stack<T> 中,然后再从 Stack<T> 中弹出元素以构建一个新的列表。因为栈是后进先出的数据结构,以是这种方法可以反转元素的次序。
  1. using System;
  2. using System.Collections.Generic;
  3. class Program
  4. {
  5.     static void Main()
  6.     {
  7.         List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
  8.         Console.WriteLine("Original list:");
  9.         Console.WriteLine(string.Join(", ", numbers));
  10.         Stack<int> stack = new Stack<int>(numbers);
  11.         List<int> reversedNumbers = new List<int>(stack);
  12.         Console.WriteLine("Reversed list:");
  13.         Console.WriteLine(string.Join(", ", reversedNumbers));
  14.     }
  15. }
复制代码
方法三:使用 LINQ

可以使用 LINQ 的 Reverse 方法来创建一个新的反转后的列表。
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. class Program
  5. {
  6.     static void Main()
  7.     {
  8.         List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
  9.         Console.WriteLine("Original list:");
  10.         Console.WriteLine(string.Join(", ", numbers));
  11.         var reversedNumbers = numbers.Reverse().ToList();
  12.         Console.WriteLine("Reversed list:");
  13.         Console.WriteLine(string.Join(", ", reversedNumbers));
  14.     }
  15. }
复制代码
方法四:手动反转

可以手动遍历列表,并使用一个辅助列表或数组来存储反转后的元素。
  1. using System;
  2. using System.Collections.Generic;
  3. class Program
  4. {
  5.     static void Main()
  6.     {
  7.         List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
  8.         Console.WriteLine("Original list:");
  9.         Console.WriteLine(string.Join(", ", numbers));
  10.         List<int> reversedNumbers = new List<int>();
  11.         for (int i = numbers.Count - 1; i >= 0; i--)
  12.         {
  13.             reversedNumbers.Add(numbers[i]);
  14.         }
  15.         Console.WriteLine("Reversed list:");
  16.         Console.WriteLine(string.Join(", ", reversedNumbers));
  17.     }
  18. }
复制代码
以上方法各有优缺点,选择哪种方法取决于详细的应用场景和需求。通常来说,使用 List<T>.Reverse 方法是最简单和高效的选择。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表