次のようなメソッドがあります。
public IEnumerable<Node> TraverseTree(Node root)
{
if(root.Children != null)
{
foreach(var item in root.Children)
TraverseTree(item);
}
yield return root;
}
そして私がするとき:
var allItems = TraverseTree(someRootNode).ToList();
最初のノードのみを取得します。IEnumerable を使用する場合、再帰を使用することはできませんか? linq クエリが完全に実行されないように IEnumerable を使用できると便利です。
編集
申し訳ありませんが、私の Node クラスは次のようになります。
class Node
{
public Node Val;
public List<Node> Children = new List<Node>();
}