如何在不更改相同列表的情况下反转通用列表?

Pho*_*_uy 12 c# reverse generic-list

我有一个通用列表,正在被调用4次的方法中使用.此方法使用此通用列表的值在PDF中写入表.

我的问题是我需要在方法中反转这个通用列表,但我调用方法4次,所以每次调用方法时列表都被反转,我不想要...我该怎么做?有没有办法扭转列表而不改变原始?

这是在方法内:

t.List.Reverse();
foreach (string t1 in t.List)
{
    //Some code
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*rvy 28

"简单"选项是以相反的顺序迭代列表而不实际更改列表本身,而不是第一次尝试反转它并且知道其他时间什么也不做:

foreach (string t1 in t.List.AsEnumerable().Reverse())
{
    //Some code
}
Run Code Online (Sandbox Code Playgroud)

通过使用LINQ Reverse方法而不是ListReverse,我们可以向后迭代它而不会改变列表.的AsEnumerable需要是存在防止List Reverse方法被使用.


SLa*_*aks 7

您正在询问如何创建列表的反向副本,而不会改变原始列表.

LINQ可以这样做:

foreach (var t1 in Enumerable.Reverse(t.List))
Run Code Online (Sandbox Code Playgroud)