그래프 클래스 (목록 및 매트릭스 구현 모두)를 디자인하고 있습니다. 나는 GetAdjacencies(int vertex)
과 같은 방법을 제공해야합니다.그래프. 반복을위한 인접성
처음에는 IEnumerable
을 반환하는 것으로 생각하여 foreach
문을 사용하여 결과를 반복 할 수있게되었습니다. 그러나 다음 번에 나는 GetAdjacencies(int vertex)
이 발생할 때마다 새로운 목록을 만들어야하기 때문에 그것은 끔찍한 해결책이라는 것을 깨달았습니다.
다음으로 Enumerator
을 반환하는 것으로 생각했지만 그 방법으로는 foreach
문을 사용하여 결과를 반복 할 수 없습니다. 그러나 효율은 훨씬 더 좋습니다 (많은 그래프 알고리즘을 구현할 것이고 최적화에 정말로 관심이 있습니다).
C#에서이 작업을 수행하는 올바른 방법은 무엇입니까?
코드가 컴파일됩니다. :) 이제는'yield' 키워드의 의미를 이해할 수 있을지 의심 스럽습니다. 현재 상황에서 내가하는 일을 설명해 주시겠습니까? – pt12lol
예를 들어 여기를 참조하십시오. http://csharpindepth.com/articles/Chapter11/StreamingAndIterators.aspx –
[여기] (http://csharpindepth.com/articles/chapter6/iteratorblockimplementation.aspx)는 피곤한 세부 사항입니다. :) –