获取TreeNode计数的不同方法

时间:2018-06-20 10:01:05

标签: c# winforms count treeview

在C#中,有不同的方法来获取父节点的TreeNodes计数:

    int numberOfNodes = node.Nodes.OfType<TreeNode>().Count();
    int numberOfNodes = node.Nodes.Count;

我知道count是指List的属性,而Count()是IEnumerable上的一种方法(由TypeOf提供)来获取其计数。我的问题是,是否有任何区别。并非TreeNode的所有节点始终都是TreeNode类型的吗?是否建议在某些情况下使用一个以上的选项,还是第一种选择只是某种可能性,这对其他情况很有用,并且也可以解决节点数问题。 我问的原因是因为我在阅读的代码中既看到又看不到什么更好。

编辑: 我正在谈论Windows窗体中的TreeNodes: https://msdn.microsoft.com/de-de/library/system.windows.forms.treenode(v=vs.110).aspx

1 个答案:

答案 0 :(得分:0)

int numberOfNodes = node.Nodes.OfType<TreeNode>().Count();
int numberOfNodes = node.Nodes.Count;

在这两个选项中, second 更快-因为它不涉及涉及LINQ的开销。

还考虑使用GetNodeCount作为替代方案,特别是如果您对整个子树的计数感兴趣的话。