Recursive lambda expression to traverse a tree in C#

后端 未结 4 1225
萌比男神i
萌比男神i 2020-12-04 10:35

Can someone show me how to implement a recursive lambda expression to traverse a tree structure in C#.

4条回答
  •  醉梦人生
    2020-12-04 11:05

    Assuming a mythical object TreeItem, that conatins a Children collection to represent your hierarchy.

        public void HandleTreeItems(Action item, TreeItem parent)
        {
            if (parent.Children.Count > 0)
            {
                foreach (TreeItem ti in parent.Children)
                {
                    HandleTreeItems(item, ti);
                }
            }
    
            item(parent);
        }
    

    Now to call it, passing in the lambda that handles one item, by printing its name to the console.

    HandleTreeItems(item => { Console.WriteLine(item.Name); }, TreeItemRoot);
    

提交回复
热议问题