我发现自己经常处理一个 IEnumerable 对象,我需要遍历该对象,并为每个元素进行计算,该元素取决于 n 个紧接在前面和后面的对象。
一个常见的例子是计算滚动平均值,但有时计算比这更复杂,并且依赖于列表中每个元素的几个字段
我永远不确定构建循环的最佳方式。效率很重要,但可维护性和可读性更重要。
有时我转换为 List 然后使用 for 循环来获取元素 [i-1],[i],[i+1] 然后执行我的计算。
其他时候,我将其保留为 IEnumerable,但我“缓存”了前几个元素,因此在 foreach 循环中到达 [i+1] 之前,我不会为 i 进行计算。
- 我还考虑使用链表,这样我就可以使用 .Previous 和 .Next 方法。
关于哪种技术最好使用的任何建议?