如何在C#中转换以下内容?
我有下面的型号如何在C#中转换以下内容?,c#,.net,C#,.net,我有下面的型号 public class Node { public int AutoIncrementId { get; set; } public string Text { get; set; } public List<Node> Nodes { get; set; } ...//other propeties } 您可以使用递归来实现这一点: public TreeView
public class Node
{
public int AutoIncrementId { get; set; }
public string Text { get; set; }
public List<Node> Nodes { get; set; }
...//other propeties
}
您可以使用递归来实现这一点:
public TreeView ConvertToTreeView(Node node)
{
TreeView tv = new TreeView();
tv.Id = node.AutoIncrementId;
tv.Text = node.Text;
if (node.Nodes != null && node.Nodes.Count > 0)
{
tv.Items = new List<TreeView>();
node.Nodes.ForEach(x => tv.Items.Add(ConvertToTreeView(x)));
}
return tv;
}
public TreeView ConvertToTreeView(节点)
{
TreeView tv=新的TreeView();
tv.Id=node.AutoIncrementId;
tv.Text=node.Text;
如果(node.Nodes!=null&&node.Nodes.Count>0)
{
tv.Items=新列表();
node.Nodes.ForEach(x=>tv.Items.Add(ConvertToTreeView(x));
}
返回电视;
}
我更喜欢这种形式
public TreeView ConvertToTreeView(Node node)
{
return new TreeView
{
Id = node.AutoIncrementId;
Text = node.Text;
Items = node.Nodes.Select(ConvertToTreeView).ToList()
};
}
编辑:是的,鲍德里克,我做到了:p和
public TreeView ConvertToTreeView(Node node)
{
return new TreeView
{
Id = node.AutoIncrementId;
Text = node.Text;
Items = node.Nodes != null
? node.Nodes.Select(ConvertToTreeView).ToList()
: new List<TreeView>()
};
}
public TreeView ConvertToTreeView(节点)
{
返回新树视图
{
Id=node.AutoIncrementId;
Text=node.Text;
Items=node.Nodes!=null
?node.Nodes.Select(ConvertToTreeView.ToList())
:新列表()
};
}
只是看起来没那么好看。为了清晰和简单,这很好:
public TreeView ConvertNode(Node rootNode)
{
var tree = new TreeView
{
Id = rootNode.AutoIncrementId,
Text = rootNode.Text,
Items = new List<TreeView>()
};
if (rootNode.Nodes != null)
{
foreach (var node in rootNode.Nodes)
{
tree.Items.Add(ConvertNode(node));
}
}
return tree;
}
public TreeView ConvertNode(Node rootNode)
{
var tree=新树视图
{
Id=rootNode.AutoIncrementId,
Text=rootNode.Text,
Items=新列表()
};
if(rootNode.Nodes!=null)
{
foreach(rootNode.Nodes中的var节点)
{
添加(ConvertNode(node));
}
}
回归树;
}
你的TreeView
不应该保存一个列表项而不是列表项吗commusoft-没有TreeView保存Listmcl-你能给我看一个递归的例子或代码片段吗?你不是说节点。节点。选择-如果“节点”为空,它不会崩溃吗?@Aron:看起来可能不太好,但是“对象引用”错误消息看起来也不太好。。。
public TreeView ConvertToTreeView(Node node)
{
return new TreeView
{
Id = node.AutoIncrementId;
Text = node.Text;
Items = node.Nodes != null
? node.Nodes.Select(ConvertToTreeView).ToList()
: new List<TreeView>()
};
}
public TreeView ConvertNode(Node rootNode)
{
var tree = new TreeView
{
Id = rootNode.AutoIncrementId,
Text = rootNode.Text,
Items = new List<TreeView>()
};
if (rootNode.Nodes != null)
{
foreach (var node in rootNode.Nodes)
{
tree.Items.Add(ConvertNode(node));
}
}
return tree;
}