我有一个 C# 对象,在 JSON 序列化之后变成这样:
var tree = [{
Id:1,
text: "Parent 1",
ParentId:0
nodes: [
{
Id:2,
text: "Child 1",
ParentId:1
nodes: [
{
Id:3
text: "Grandchild 1",
ParentId:2,
nodes:[]
},
{
Id:4,
text: "Grandchild 2",
ParentId:2,
nodes: []
}
]
},
{
Id:5
text: "Child 2",
ParentId:1,
nodes: []
}
]
},
{
Id:6,
text: "Parent 2",
ParentId:0
nodes: []
}];
我想从对象中删除所有空的节点,即 [] 或者只是将它们标记为 null ,所以我的最终对象看起来像
var tree = [{
Id:1,
text: "Parent 1",
ParentId:0
nodes: [
{
Id:2,
text: "Child 1",
ParentId:1
nodes: [
{
Id:3
text: "Grandchild 1",
ParentId:2,
nodes:null
},
{
Id:4,
text: "Grandchild 2",
ParentId:2,
nodes:null
}
]
},
{
Id:5
text: "Child 2",
ParentId:1,
nodes:null
}
]
},
{
Id:6,
text: "Parent 2",
ParentId:0
nodes:null
}];
该列表是动态的,可以有许多分支。谢谢。我的 C# 类是这样的
public class Tree
{
public int Id { get; set; }
public string text { get; set; }
public int ParentId { get; set; }
public List<Tree> nodes { get; set; }
}
为了创建树列表对象我的功能:
var treeItems = new List<Tree>(); //Contails Flat Data No tree
treeItems = SomeMethod(); //To populate flat Data
treeItems.ForEach(item => item.nodes = treeItems.Where(child => child.ParentId == item.Id).ToList());
现在我得到树结构
var tree = treeItems.First();
我需要一些逻辑,以便nodes = null
最好使用 linq 将所有嵌套级别放在所有嵌套级别中。这样我就可以使用它 bootstrap-treeview 数据源。