1
1
如何向类中添加索引器:
如果您真的需要foreach功能:
|
2
5
定制的迭代器可能会使它更快( 编辑 返回已知类型):
(您将直接使用arrayIterator作为foo的getEnumerator——本质上是从arrayEnumerator.getEnumerator复制代码;我的观点是显示类型化迭代器比接口更快) 附有代码:
|
3
3
将数组强制转换为
它可能仍然比直接用
编辑: 好吧,你说你的另一次尝试使用了一个索引器。你可以 尝试 这种方法,尽管我认为不会更快:
另一种选择是尽量避免从二维数组开始。这是绝对要求吗?创建一个数组后,您多长时间迭代一次?为了使迭代更便宜,在创建时稍微点击一下可能是值得的。 编辑:另一个建议,稍微偏离墙壁…与其将迭代器传递回调用者,为什么不让调用者使用委托来说明如何处理每个项呢?
缺点:
|
4
-5
所有形式的迭代都很便宜。如果这个时代的任何人能够以某种方式编写和发布一个昂贵的迭代器,他们将(正确地)处于危险之中。 过早的优化是邪恶的。 干杯。基思。 |