public bool MoveNext() { if (this.childCollectionEnumerator != null && this.childCollectionEnumerator.MoveNext()) { return(true); } while (this.propertyEnumerator.MoveNext()) { ISceneNodeCollection <SceneNode> collectionForProperty = this.parentNode.GetCollectionForProperty(this.propertyEnumerator.Current); if (collectionForProperty.Count > 0) { this.childCollectionEnumerator = collectionForProperty.GetEnumerator(); return(this.childCollectionEnumerator.MoveNext()); } } return(false); }