我有一个List<Category>
地方Category
是:
public class Category {
public List<Category> Categories { get; set; } // this holds sub-categories
public string Name { get; set; }
public string Icon { get; set; }
public string Id { get; set; }
}
由于Categories
它本身是另一个List<Category>
,因此它可以包含子类别,而这些子类别可以包含子类别,依此类推......
我知道我可以像这样查询第一个“层”:
Categories.Where(x => x.Categories.Any(c => c.Id == id)).FirstOrDefault();
如何有效地查询对象树中的特定层Category
,Id
可能是 3,4 或 5 层(最多有 3 层,但我想知道将来参考)?
编辑
Category
此外,如果我只有Id
3 层深的子类别,我怎么能得到整个对象树,一直到顶层?