我是LINQ的新手,请原谅我,如果这是一个愚蠢的问题,但从我开始理解的LINQ让我相信我应该能够做到以下几点。 我想在TreeView(任何级别)中获取一组节点,并按字母顺序对它们的兄弟节点进行排序。
我想我能够做到以下几点:
//node is already selected
TreeNode parent = node.Parent;
TreeNodeCollection siblingNodes = node.Parent.Nodes;
siblingNodes = siblingNodes.OrderBy(x => x.Text);
由于TreeNodeCollection
实现了IEnumerable
。但编译器告诉我
System.Windows.Forms.TreeNodeCollection不包含定义 对于OrderBy而没有扩展方法OrderBy接受第一个参数 可以找到类型System.Windows.Forms.TreeNodeCollection(是 你错过了使用指令或程序集引用?)
(我正在使用System.Linq
)
那么我误解了什么?
答案 0 :(得分:3)
您是否缺少对LINQ的引用?
using System.Linq;
<强>更新强>
您需要定义TreeViewNodeSorter
才能对节点进行排序。这篇文章将指出正确的方向:Sorting nodes of a TreeView
答案 1 :(得分:1)
基于MSDN:
http://msdn.microsoft.com/en-us/library/system.linq(v=vs.100).aspx
IEnumerable的System.Linq扩展名未定义OrderBy。它为IEnumerable&lt; T&gt;定义了OrderBy。