C# 使用linq按字母顺序对树视图排序
我是LINQ的新手,所以如果这是一个愚蠢的问题,请原谅我,但从我对LINQ的理解来看,我相信我应该能够做到以下几点。 我想在树状视图中获取一组节点(在任何级别),并根据它们的兄弟节点的字母顺序对它们进行排序 我想我可以做到以下几点:C# 使用linq按字母顺序对树视图排序,c#,.net,linq,sorting,treeview,C#,.net,Linq,Sorting,Treeview,我是LINQ的新手,所以如果这是一个愚蠢的问题,请原谅我,但从我对LINQ的理解来看,我相信我应该能够做到以下几点。 我想在树状视图中获取一组节点(在任何级别),并根据它们的兄弟节点的字母顺序对它们进行排序 我想我可以做到以下几点: //node is already selected TreeNode parent = node.Parent; TreeNodeCollection siblingNodes = node.Parent.Nodes; siblingNodes = sibling
//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类型的(是
是否缺少using指令或程序集引用?)
(我正在使用System.Linq
)
那么,我误解了什么呢?您是否遗漏了对LINQ的引用
using System.Linq;
更新:
您需要定义一个
TreeViewNodeSorter
,以便能够对节点进行排序。这篇文章将为您指出正确的方向:您是否缺少对LINQ的引用
using System.Linq;
更新:
您需要定义一个TreeViewNodeSorter
,以便能够对节点进行排序。这篇文章将为您指出正确的方向:基于MSDN:
IEnumerable的System.Linq扩展未定义OrderBy。它为IEnumerable定义了OrderBy
与基于MSDN的
IEnumerable的System.Linq扩展未定义OrderBy。它为IEnumerable定义了OrderBy
vs.不,我正在使用System.Linq(这是我最初的问题,但另一个用户编辑了那句话…),但是,这正是编译器告诉你的。不,Linq的其他扩展方法显示为intellisense,所以Linq就在那里。我可以注释掉我的代码,创建一个虚拟数组,并对其执行Linq OrderBy操作。这与TreeNodeCollection中的OrderBy不一样。不,我使用的是System.Linq(这是我最初的问题,但另一个用户编辑了那句话…),但是,这正是编译器告诉你的。不,Linq的其他扩展方法在intellisense中显示,所以Linq就在那里。我可以注释掉我的代码,创建一个虚拟数组,并对其执行Linq OrderBy操作。在这个TreeNodeCollection案例中,它与OrderBy不同。那么,我不能在TreeNodeCollection上执行Linq命令的缺点是什么?你不能直接在TreeNodeCollection上执行Linq命令。您可以将其更改为List或IEnumerable,然后执行linq。那么,我不能在TreeNodeCollection上执行linq命令的缺点是什么?您不能直接在TreeNodeCollection上执行linq。您可以将其更改为List或IEnumerable,然后执行linq。