再帰的にオブジェクトが「構築中」のときに、オブジェクト(または参照)を関数に渡す方法はありますか?私は彼の子供の中に親ノードを保持したい。親ノードを再帰的に渡す
いくつかの方法で行わを呼び出す:
NavigationTreeNode node = FindNode(Resources.ShellView_TreeNodeBusinessRules);
var tmpList = LoadNodes(xDoc.Descendants("root").Elements("tab"), node);
そして、これが再帰です:あなたはラムダ式の範囲を指定するには、{}
を追加することができ、その後、あなたの新しいオブジェクトを保存することができます
private List<NavigationTreeNode> LoadNodes(IEnumerable<XElement> nodes, NavigationTreeNode parentNode)
{
return nodes.Select(x =>
new NavigationTreeNode(x.Attribute("display-name").Value, parentNode)
{
TabName = x.Attribute("tab-name").Value,
// Here I want to send object that is now under
// construction, or maybe reference
ChildNodes = LoadNodes(x.Elements("tab"), /* ?? */)
}).ToList();
}
驚くべき男、それは動作します!私はLINQでより多くの運動が必要です。 FYI、はい、それは単なる文字列です。 –
@p__d - この編集が今でもあなたに合っているかどうか教えてください –
ここでは何が再帰を破りますか? –