使用Linq表达式中的键创建TreeNodes

时间:2011-10-21 13:40:40

标签: c# linq treeview

我正在尝试使用键创建TreeNode,但TreeNode没有构造函数来获取键和文本。我发现只有以下解决方案:

TreeNode tn = new TreeNode("text node");
tn.Name = "keyNode";

treeView.Nodes.Add("keyNode", "text node");

但是这些方法并不适合我,因为我尝试使用Linq查询向TreeNodes添加新的treeView


以下是我想要理想的事情:

treeView.Nodes.AddRange(
    myListOfObject.Select(x => new TreeNode(x.somePropertyForKey, 
                                            x.somePropertyForText)).
                   ToArray<TreeNodes>());

我是否坚持使用foreach循环来创建TreeNodes,或者您是否看到了一种方法来执行此操作 - ish

2 个答案:

答案 0 :(得分:9)

这就是

的新初始化语法
TreeNode tn = new TreeNode("text node") {Name = "keynode"} ;

答案 1 :(得分:1)

treeView.Nodes.AddRange(myListOfObject.Select(new TreeNode
               {
                  Name = "keyNode", 
                  TreeNode = new TreeNode[]{new TreeNode{Name="text node"}}}
               });

应该是这样的。 (请检查大括号和语法)

您可能希望使用此构造函数TreeNode(String, TreeNode[])

顺便说一句,如果这不起作用并且您没有访问数据库,则可以执行以下操作:

treeView.Nodes.AddRange(myListOfObject.Select(new TreeNode
               (
                  "keyNode", 
                  new TreeNode[]{new TreeNode{Name="text node"}}}
               );