Я создал собственную коллекцию, реализующую 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. Как я смогу это сделать?