【发布时间】:2011-05-30 08:02:54
【问题描述】:
我有一个通用的 Tree 类,它将实现 ICollection(因此实现 IEnumerable 和 IEnumerable)。
为此,我必须实现一个 TreeEnumerator 类。
每次调用 Tree.GetEnumerator() 都会返回一个新的 TreeEnumerator 实例。
我有两个问题:
如果有很多 TreeEnumerator 对象浮动并且底层的 Tree 发生变化,那么会发生什么?如何处理?
最好在创建 TreeEnumerator 时对所有树元素(在 TreeEnumerator 内以方便数组遍历)执行 CopyToArray 还是对每个 MoveNext 执行一次遍历?
我知道 CopyToArray 很容易一次性遍历,但会占用空间。
编辑:
了解版本机制后:
您能指出这种版本控制机制的示例代码吗?必须有标准的命名和访问方式,因为 foreach 循环需要对每个 MoveNext 进行此检查
【问题讨论】:
标签: .net generics collections