C# 使用TreeView控件创建适当的树状结构

C# 使用TreeView控件创建适当的树状结构,c#,winforms,treeview,C#,Winforms,Treeview,我在这个网站和其他网站上搜索了一个解决方案,但不幸的是,我在那里尝试的一切都没有奏效。 我试图实现的是从列表创建一个树状结构,通过TreeView控件显示 这就是我到目前为止所做的: List<string> versions = servers.Select(s => s.Version).Distinct().ToList(); foreach (var version in versions) { TreeNode root = new TreeNode(ver

我在这个网站和其他网站上搜索了一个解决方案,但不幸的是,我在那里尝试的一切都没有奏效。 我试图实现的是从
列表创建一个树状结构,通过
TreeView
控件显示

这就是我到目前为止所做的:

List<string> versions = servers.Select(s => s.Version).Distinct().ToList();

foreach (var version in versions)
{
    TreeNode root = new TreeNode(version);
    root.ExpandAll();
    myTreeView.Nodes.Add(root);

    foreach (var server in servers.Where(x => x.Version == version))
    {
         myTreeView.Nodes.Add(server.ServerName);
    }
}
但我想看到的是:

VersionA
    Server2
    Server3
VersionB
    Server1
    Server4
注意:此层次结构中始终有两个级别。
请帮帮我

每个
树节点
都有自己的
节点
列表,这就是构建树的方式。要将分支(或叶子)添加到树中,您需要跟踪从其派生的当前节点

在您的情况下,代码很接近,只需更改在内部循环中运行的
Add
的目标即可进行修改,如下所示:

foreach (var server in servers.Where(x => x.Version == version))
{
     root.Nodes.Add(server.ServerName);
}

这将添加服务器节点作为版本节点的叶子。

为了澄清,
myTreeView
resultView
是相同的吗?是的,对不起,我会更正的,谢谢
foreach (var server in servers.Where(x => x.Version == version))
{
     root.Nodes.Add(server.ServerName);
}