【发布时间】:2013-03-29 13:16:13
【问题描述】:
我有一个 C# 集合,我想知道是否可以像使用 Python 的 .next() 方法一样访问下一个产生的值。例如
double diffFoo = myList.next() - myObject.Foo;
double diffBar = myList.next() - myObject.Bar;
...
而不是,
double diffFoo = myList[0] - myObject.Foo;
double diffBar = myList[1] - myObject.Bar;
...
在这种情况下,foreach 循环是不合适的,因为每次“迭代”都使用不同的类方法。如果/当订单需要在代码中更改时,我想这样做以节省必须保持更新的索引。
【问题讨论】:
-
是的,但您可能最终会使用
while loop和GetEnumerator方法,然后使用 .MoveNext() 方法您想举个例子吗? -
这个提议的解决方案解决的真正业务问题是什么?
-
@Pieter 用于定义一堆类来读取具有相似列但排序不同的不同 .csv 文件。使用迭代器方法,我可以剪切并粘贴到一个新类中并交换/添加/删除行,直到它们匹配。如果没有迭代器,我还必须设置索引,这很耗时。