列表的反向迭代器?

Ali*_*bar 10 dart

是否有一种有效的方法在dart中以相反的顺序迭代列表中的对象?我可以使用索引,但这会导致性能损失(即,如果List<E>使用链接列表在内部构建)?

上下文:我从后到前绘制对象,但需要从前到后处理它们

阿里

Set*_*add 30

您现在可以在Dart中反转列表的迭代.reversed在List上使用getter.

var fruits = ['apples', 'oranges', 'pears'];
Iterable inReverse = fruits.reversed;
var fruitsInReverse = inReverse.toList();
print(fruitsInReverse); // [pears, oranges, apples]
Run Code Online (Sandbox Code Playgroud)

你可以缩短到:

var fruits = ['apples', 'oranges', 'pears'];
print(fruits.reversed.toList());
Run Code Online (Sandbox Code Playgroud)

请参阅API文档.


Ale*_*uin 6

在问题#2804得到修复之前,您必须使用索引以相反的顺序迭代列表。对于您的性能问题,这应该很好,因为Lasse RH Nielsen曾经说过

Dart中的列表旨在用于随机访问

  • Dart现在有了解决方案。检查我对问题的回答。希望有帮助! (2认同)