C# 如何从末尾循环一个列表?

C# 如何从末尾循环一个列表?,c#,C#,这将从第一个索引0、1、2、3…开始循环。。。。 我想从最后一个索引51,50,49循环 for (int x = 0; x < data.Count(); x++) for(int x=0;x0;){}注意:这增加了计算逆序列表的额外开销。(就我个人而言,我只喜欢在向用户显示列表时使用Reverse)@Sayse-我经常回答与性能问题相关的问题,我很少看到这样的问题导致性能问题在任何方面都很严重。在99.99%的情况下,这段代码的可读性将超过对性能的影响。我同意这可能对性能影响很小,但

这将从第一个索引0、1、2、3…开始循环。。。。 我想从最后一个索引51,50,49循环

for (int x = 0; x < data.Count(); x++)
for(int x=0;x

我需要从末尾向后循环列表的内容。

您需要从
计数-1开始,将条件更改为大于或等于零,并使用减量
--
而不是增量。阅读这篇MSDN文章,了解更多有关for循环的信息

for (int x = data.Count()-1 ; x >=0 ; x--)

如果您只想访问每个项目,则可以执行以下操作:

foreach (var item in data.Reverse())
{
    /* do stuff with each item */
}

在99.99%的情况下,此代码的可读性将超过性能影响。

for(int i=data.Count();i-->0;){}
注意:这增加了计算逆序列表的额外开销。(就我个人而言,我只喜欢在向用户显示列表时使用
Reverse
)@Sayse-我经常回答与性能问题相关的问题,我很少看到这样的问题导致性能问题在任何方面都很严重。在99.99%的情况下,这段代码的可读性将超过对性能的影响。我同意这可能对性能影响很小,但仍然会对性能产生影响,我希望大多数程序员能够理解向后for循环是什么样子的。除非您处理的是非常大的结构,而且它肯定更具可读性,否则性能影响将可以忽略不计。