什么是linq表达式

时间:2017-03-08 13:01:16

标签: linq

我不知道如何重构这个表达。

TreeViewItemNode FindNode(TreeViewItemNode nodeCollection)
{
    foreach (var child in nodeCollection.Children)
        {
            var found = FindNodeContainingVarId(child, varId);
            if (found != null)
                return found;
        }

   return null;
}

1 个答案:

答案 0 :(得分:1)

首先选择节点并获取第一个找到的节点,如果没有找到如下节点,则返回null:

TreeViewItemNode FindNode(TreeViewItemNode nodeCollection)
{
    return nodeCollection.Children
        .Select(child => FindNodeContainingVarId(child, varId).
        .FirstOrDefault(node => node != null);
}