public bool Next() { if (nodeQueue == null || nodeQueue.Count == 0) { return(false); } Current = nodeQueue.Dequeue(); foreach (Party subPart in Current.GetSubParty()) { nodeQueue.Enqueue(subPart); } return(true); }