뒷받침 컬렉션에 쓸 수있는 반복자/열거 자의 유형을 찾고 있습니다. C# 열거자는 읽기 전용입니다.STL 출력 반복기와 동일한 C#이 있습니까?
5
A
답변
2
C#에는 이러한 작업을 수행하는 데 필요한 것이 없습니다.
맞아 IEnumerator의 Current 속성은 getter로만 정의됩니다.
그런 것을 지원하기 위해 새로운 클래스 또는 인터페이스를 작성해야합니다.
interface IOutputable<T> {
IOutputer<T> GetOutputer();
}
interface IOutputer<T> {
T Current { set; }
bool MoveNext();
void Reset();
}
2
AFAIK 출력 반복기는 일련의 개체를 만드는 방법입니다. C#에서 그렇게 할 수있는 방법이 무수히 있습니다. 예를 들어 Stack
을 사용합니다. 대신 C++ 스타일의 증가를하는/당신이 푸시를 할 거라고 작업을 지정합니다 : 당신이 그것을 위해 매우 구체적인 응용 프로그램이 없다면, C#에서 출력 반복자를 모방하려고 노력에는 이익이 아마 없다
var sequence = new Stack<int>();
sequence.Push(1);
sequence.Push(2);
.
0
당신이하려는 일에 따라 yield return
도 찾고있는 것을 할 수 있습니다.
허용되는 대답이어야합니다. MerickOWA의 접근 방식이 효과가있을 수 있지만, C# 방식으로 작업하는 것이 아닙니다. – dan04