【发布时间】:2018-07-26 01:31:37
【问题描述】:
尝试将同一对象的子项查询到 n 深度并以以下格式显示。所以为每个子猫添加标签空间。
Cat 1
Sub Cat 1 - 1
Sub Cat 1 - 2
Cat 2
Sub Cat 2 - 1
Sub Cat 2 - 2
Sub Cat 3 - 2 - 2
class NavItem {
public string label { get; set; }
public List<NavItem> childItems { get; set; }
}
创建项目,
var item = new NavItem()
{
label = "Root",
childItems = new List<NavItem>() {
new NavItem() { label = "Cat 1" , childItems = new List<NavItem>() {
new NavItem() { label = "Sub Cat 1 - 1" },
new NavItem() { label = "Sub Cat 1 - 2" },
} },
new NavItem() { label = "Cat 2", childItems = new List<NavItem>() {
new NavItem() { label = "Sub Cat 2 - 1" },
new NavItem() { label = "Sub Cat 2 - 2", childItems = new List<NavItem>() {
new NavItem() { label = "Sub Cat 3 - 2 - 2"}
} },
} },
}
};
我有以下代码,但不完整。它只能走两个深度
item.childItems.ForEach(i => {
Console.WriteLine(i.label);
i.childItems.ForEach(i1 =>
{
Console.WriteLine("\t" + i1.label);
});
});
【问题讨论】:
-
您的“LINQ 查询”不使用任何 LINQ 方法,除了只遍历深度 2。它甚至不模拟 LINQ 编程风格。