【发布时间】:2012-08-22 11:07:26
【问题描述】:
我发现自己经常处理一个 IEnumerable 对象,我需要遍历该对象并为每个元素进行计算,该元素取决于紧接在前面和后面的对象。
一个常见的例子是计算滚动平均值,但有时计算比这更复杂,并且依赖于列表中每个元素的多个字段
我永远不确定构建循环的最佳方式。效率很重要,但可维护性和可读性更重要。
有时我会转换为 List,然后使用 for 循环获取元素 [i-1],[i],[i+1],然后执行我的计算。
1234563循环。
- 我还考虑过使用链表,这样我就可以使用 .Previous 和 .Next 方法。
关于哪种技术最适合使用有什么建议吗?
【问题讨论】:
-
现在不打算发表意见(简短回答的利弊太多,我没有时间回答长篇大论),但在某些情况下,另一种可能性是您搬入的两个指标串联。
i开始于例如0 和j在 3 处,你用k从i到j做一些事情(半开,所以点击 0、1 和 2),然后你移动++i;++j;并再次循环k, 直到++j > list.Count(所以 j 在最后一次传递时指向列表之外)。
标签: c# list foreach ienumerable