如何逆序遍历c# LinkedList

本文关键字:遍历 LinkedList 逆序 何逆序 | 更新日期: 2023-09-27 18:15:14

如何使用c# LinkedList实现以下c++代码段的等效功能?

std::list<MyClass*>::reverse_iterator itr(it); 
for(; itr != MyList.rend(); ++itr)

如何逆序遍历c# LinkedList

作为1-off,例如:

var el = list.Last;
while (el != null) {
    // use el.Value
    el = el.Previous;
}

如果你经常这样做,也许一个类似的迭代器块来产生所有的值:

public static IEnumerable<T> Reverse<T>(this LinkedList<T> list) {
    var el = list.Last;
    while (el != null) {
        yield return el.Value;
        el = el.Previous;
    }
}

:

foreach(var val in list.Reverse()) {
    // use val
}