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

本文关键字:创建 TreeNode Linq 表达式 使用 | 更新日期: 2023-09-27 18:11:52

我正试图创建一个带有键的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

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

这就是的新初始化语法

TreeNode tn = new TreeNode("text node") {Name = "keynode"} ;
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"}}}
               );