【发布时间】:2011-12-30 12:57:49
【问题描述】:
我创建了一个自定义集合,它实现了IEnumerable(T) 和一个自定义IEnumerator(T)。
我还在自定义集合中添加了一个 Add() 方法,如下所示:
public void Add(T item)
{
T[] tempArray = new T[_array.Length + 1];
for (int i = 0; i < _array.Length; i++)
{
tempArray[i] = _array[i];
}
tempArray[_array.Length] = item;
_array = tempArray;
tempArray = null;
}
实现基于这个例子http://msdn.microsoft.com/en-us/library/system.collections.ienumerator.aspx。
当我使用我的数组执行 foreach 循环时,我想防止集合修改(例如在循环内调用 Add())并抛出一个新的 InvalidOperationException。我怎么能做到这一点?
【问题讨论】:
标签: c# foreach iterator invalidoperationexception