在C#中,有幾種方法可以對List進行倒序排列:
1. 使用List的Reverse()方法(原地反轉)
| List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; |
| numbers.Reverse(); // 直接修改原列表 |
| |
| // 結果:5, 4, 3, 2, 1 |
2. 使用OrderByDescending()(不修改原列表,返回新序列)
| List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; |
| var reversed = numbers.OrderByDescending(n => n).ToList(); |
| |
| // 結果:5, 4, 3, 2, 1 |
3. 使用Array.Reverse()(先轉換為數組)
| List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; |
| int[] array = numbers.ToArray(); |
| Array.Reverse(array); |
| List<int> reversedList = new List<int>(array); |
| |
| // 結果:5, 4, 3, 2, 1 |
4. 自定義倒序(使用循環)
| List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; |
| List<int> reversed = new List<int>(); |
| for (int i = numbers.Count - 1; i >= 0; i--) |
| { |
| reversed.Add(numbers[i]); |
| } |
| |
| // 結果:5, 4, 3, 2, 1 |
性能比較
Reverse()
方法是最直接且性能最好的方式,因為它直接在原列表上操作OrderByDescending()
會創建新的序列,適合需要保留原列表的情況- 自定義循環方法在大多數情況下性能不如內置方法
注意事項
Reverse()
方法會直接修改原列表- 如果需要保留原列表,應該先創建副本再反轉
- 對于復雜對象列表,反轉操作只影響引用順序,不會影響對象本身
選擇哪種方法取決于你的具體需求:是否需要修改原列表、是否需要保留原列表、性能考慮等。