J'ai créé une collection personnalisée qui implémente IEnumerable(T) et une personnalisation IEnumerator(T).Implémentation Iterator personnalisée C# - empêche la modification de la collection pendant la boucle foreach
J'ai aussi ajouté une méthode Add() à la collection personnalisée qui ressemble à ceci:
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;
}
La mise en œuvre est basée sur cet exemple http://msdn.microsoft.com/en-us/library/system.collections.ienumerator.aspx.
Lorsque je fais une boucle foreach avec mon tableau, je voudrais empêcher la modification de la collection (comme appeler Add() à l'intérieur de la boucle) et lancer une nouvelle InvalidOperationException. Comment serais-je capable de faire ça?
Merci Jon. Une solution vraiment simple. Cela semble un peu évident maintenant. =) – Spalatum