SilverlightMappingToolBasic.UI.SuperGraph.View.NodeControlSupportClasses.NodeControl.GetAllChildNodeControls C# (CSharp) Method

GetAllChildNodeControls() public method

public GetAllChildNodeControls ( ) : IEnumerable
return IEnumerable
        public IEnumerable<NodeControl> GetAllChildNodeControls()
        {
            var output = new List<NodeControl>();
            var nodeToLoop = ChildNodes;
            var list = new List<NodeControl>();
            while (nodeToLoop.Count > 0)
            {
                list.Clear();
                foreach (var nodeControl in nodeToLoop)
                {
                    if (!output.Contains(nodeControl))
                    {
                        output.Add(nodeControl);
                        if (nodeControl.ChildNodes.Count > 0)
                        {
                            foreach (var child in nodeControl.ChildNodes)
                            {
                                if (!output.Contains(child))
                                {
                                    list.Add(child);
                                }
                            }
                        }
                    }
                }
                nodeToLoop = list.ToList();
            }
            
            if (output.Contains(this))
            {
                output.Remove(this);
            }
            return output.Distinct();
        }