我有後JSON序列化成爲這樣的一個C#對象:刪除在C#列表空節點
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: []
}];
我想刪除是空即[]從對象或只是將它們標記的所有節點爲空,所以我的最終目標看起來像
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
}];
名單是動態的,可以有很多branches.Thanks。 我的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();
我需要一些邏輯判斷,使得最好使用linq將所有的nodes = null
放在所有嵌套級別中。 以便我可以使用它bootstrap-treeview數據源。
剛剛成立的屬性設置爲null,也許?一個[mcve]在這裏真的會有所幫助......(我沒有看到Javascript或Bootstrap是如何與這裏真正相關的 - 這只是C#生成的JSON,對不對?) –
您是否希望從列表中刪除空的項目他們是序列化的?真的需要看到對象第一個 – Wheels73
請減少到一個完整的例子(完成:所有必要的人重新創建的位)。 – Richard