在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
答案 0 :(得分:0)
int numberOfNodes = node.Nodes.OfType<TreeNode>().Count();
int numberOfNodes = node.Nodes.Count;
在这两个选项中, second 更快-因为它不涉及涉及LINQ的开销。
还考虑使用GetNodeCount作为替代方案,特别是如果您对整个子树的计数感兴趣的话。