Sam*_*m F 11 c# collections reverse traversal
是否有可能以foreach相反的顺序遍历Collections对象的语句?
如果不是foreach声明,还有另一种方式吗?
SLa*_*aks 20
您可以for向后使用正常循环,如下所示:
for (int i = collection.Count - 1; i >= 0 ; i--) {
var current = collection[i];
//Do things
}
Run Code Online (Sandbox Code Playgroud)
你也可以使用LINQ:
foreach(var current in collection.Reverse()) {
//Do things
}
Run Code Online (Sandbox Code Playgroud)
但是,正常for循环可能会快一点.
你可以在集合上调用Reverse().
foreach(var item in collection.Reverse()) { ... }
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 3.5,看起来 LINQ 中有一个 Reverse() 方法,它不会以相反的顺序迭代,但会反转整个列表,那么您可以执行 foreach。
或者您可以使用简单的 for 语句:
for(int i = list.Count -1; i >= 0; --i)
{
x = list[i];
}
Run Code Online (Sandbox Code Playgroud)