Класс RecursiveHelper  реализует основные операции для рекурсивной обработки иерархических данных. Каждому разработчику в своей практике приходится решать задачи, требующие применения рекурсивных алгоритмов. Наиболее типичным примером таких задач является обработка древовидных (или иерархических данных).

При реализации такого алгоритма разработчику приходится реализовать как минимум одну, а в некоторых случаях и несколько вспомогательных методов.

Пример ниже показывает стандартную реализацию рекурсивного алгоритма обхода дерева

public class Class1

 {

         public int Int1 { get; set; }

         public List<Class1> Children { get; set; }

 }

 

 

         void GoRound(Class1 obj)

         {

                 Console.WriteLine(obj.Int1);

                 if (obj.Children != null)

                         foreach (var class1 in obj.Children)

                                 GoRound(class1);

         }

 

 

 GoRound(data);

 

Та же задача может быть решена с помощью RecursiveHelper, как показано ниже:

RecursiveHelper.Recursive(data, a => a.Children, a => Console.WriteLine(a.Int1));

Альтернативный вариант:

data.Recursive(a => a.Children, a => Console.WriteLine(a.Int1));

RecursiveHelper реализует методы:

Чтобы узнать больше о RecursiveHelper, обратитесь к следующим документам:

Code reference