使用LINQ搜索树

使用LINQ搜索树,第1张

使用LINQ搜索树

这需要递归是一个误解。这 需要一个堆栈或队列和最简单的方法是使用递归来实现它。为了完整起见,我将提供一个非递归答案。

static IEnumerable<Node> Descendants(this Node root){    var nodes = new Stack<Node>(new[] {root});    while (nodes.Any())    {        Node node = nodes.Pop();        yield return node;        foreach (var n in node.Children) nodes.Push(n);    }}

例如,使用以下表达式来使用它:

root.Descendants().Where(node => node.Key == SomeSpecialKey)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5462615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存