List<T>.Reverse()
ist ein in-place umgekehrt. Das bedeutet, dass es Ihre ursprüngliche Liste ändert.
Also, würden Sie es wie folgt verwenden:
foreach (List<Foo> row in Items)
{
row.Reverse();
foreach (Foo item in row)
{
...
}
}
Wenn Sie wollen nicht Ihre ursprüngliche Liste ändern, werden Sie Enumerable.Reverse
ausdrücklich nennen sind:
foreach (List<Foo> row in Items)
{
foreach (Foo item in Enumerable.Reverse(row))
{
...
}
}
Der Grund für Enumerable.Reverse
in der Syntax der Erweiterungsmethode nicht verwenden zu können, ist Folgendes: Die Erweiterungsmethoden unterdrücken die Methoden der Instanz nicht und List<T>
hat bereits eine Methode Reverse
.
Nach diesem Beitrag, wie es scheint sie die Unterschrift der Reverse-Methode in einer aktuellen Version von .NET geändert hat: public static IEnumerable umge (diese IEnumerable Quelle); –
hbulens