← Каталог
Итераторы и ключевое слово yield — Создание пользовательских итераторов
Фрагмент из «Итераторы и ключевое слово yield»: Создание пользовательских итераторов.
public class TreeNode
{
public int Value { get; set; }
public List<TreeNode> Children { get; } = new();
public IEnumerable<int> TraverseDepthFirst()
{
yield return Value;
foreach (var child in Children)
{
foreach (var value in child.TraverseDepthFirst())
{
yield return value;
}
}
}
} public class TreeNode
{
public int Value { get; set; }
public List<TreeNode> Children { get; } = new();
public IEnumerable<int> TraverseDepthFirst()
{
yield return Value;
foreach (var child in Children)
{
foreach (var value in child.TraverseDepthFirst())
{
yield return value;
}
}
}
}