IEnumerable(T) 및 사용자 지정 IEnumerator(T)을 구현하는 사용자 지정 컬렉션을 만들었습니다.C# 사용자 지정 반복자 구현 - foreach 루프 중 컬렉션 수정 금지
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에 기초한다 :
는 I는 다음과 같다 커스텀 컬렉션에 추가() 메소드를 첨가.
내 배열로 foreach 루프를 수행 할 때 루프 내에서 Add()를 호출하는 것과 같은 컬렉션 수정을 방지하고 새로운 InvalidOperationException을 throw하고 싶습니다. 내가 어떻게 할 수 있니?
감사합니다. 정말 간단한 해결책입니다. 이제 분명해 보입니다. =) – Spalatum