예제 #1
0
        public virtual Boolean MoveNext()
        {
            Boolean result;

            if (!Completed)
            {
                if (ProgressQueue.Count > 0)
                {
                    TreeNodeType node = ProgressQueue.Dequeue();

                    foreach (TreeNodeType child in node.Children)
                    {
                        ProgressQueue.Enqueue(child);
                    }

                    CurrentItem = node;
                }
                else // Enumeration is complete.
                {
                    CurrentItem = InvalidItem;
                    Completed   = true;
                }

                result = !CurrentItem.Equals(InvalidItem);
            }
            else
            {
                result = false;
            }

            return(result);
        }