我有List<Object>
。我想迭代这个列表,但我希望顺序被反转,所以当我使用该对象时,它将从最后一个开始到第一个。我怎么能这样做,最少的代码?
感谢。
P.S。我正在使用C#,WinForms。
答案 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--) { }