每个 - 倒序

时间:2014-05-18 10:44:19

标签: c#

我有List<Object>。我想迭代这个列表,但我希望顺序被反转,所以当我使用该对象时,它将从最后一个开始到第一个。我怎么能这样做,最少的代码?

感谢。

P.S。我正在使用C#,WinForms。

1 个答案:

答案 0 :(得分:5)

使用扩展方法Enumerable<T>.Reverse。这将以相反的顺序遍历列表并保持原始列表不变。

foreach(var item in list.AsEnumerable().Reverse())
{

}
但是,

Reverse遍历列表并在迭代开始时以相反的顺序缓存项目。在90%的情况下,这很好,因为它仍然是O(n)操作,但如果你想避免这个缓存,只需使用普通的for

for(int i = list.Count - 1; i >= 0; i--) { }