Cześć,
mam klasę typu Tree<T>
, która w uproszczeniu wygląda tak:
public class Tree<T> {
public List<Tree<T>> Children = new();
public IEnumerable<Tree<T>> GetTreeList()
{
yield return this;
for(var i = 0; i < Children.Count; i++)
{
yield return Children[i];
yield return Children[i].GetTreeList(); //<--To nie działa
}
}
}
Mam problem z utworzeniem funkcji, która zwróci mi tablicę całego drzewa. yield
chyba wymaga pojedynczego obiektu i wykłada się przy rekurencyjnym wywołaniu tej samej funkcji (która zwraca listę).
Macie jakiś pomysł jak to można obejść wykorzystując yield
? Bez yield
a sobie poradzę, ale chciałem porównać oba rozwiązania.