我有一个问题,令我惊讶的是还没有以这种格式提出。
如果我有一个基于迭代数据源(并使用yield return语句)生成的IEnumerable,我如何检测在通过通过生成的枚举器进行访问后何时对源进行了修改GetEnumerator 调用?
这是奇怪的部分:我不是多线程的。我认为我的问题在某个地方有缺陷,因为这应该很简单。 。 。我只想知道源何时发生更改并且迭代器已过时。
太感谢了。
您需要自己处理创建枚举器才能跟踪此信息,或者至少使用yield return;
使用您自己的修改跟踪类型。
例如,大多数框架集合类都保留“版本”号。当他们创建枚举器时,他们会保留该版本号的快照,并在MoveNext()
。您可以在致电之前进行相同的检查yield return XXX;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)