【发布时间】:2012-12-08 16:54:58
【问题描述】:
我有一个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();
如何通过Id 有效地查询特定的Category,对象树中可能有 3、4 或 5 层(最多有 3 层,但我想知道以供将来参考) ?
编辑
此外,如果我只有 3 层深的子类别的 Id,我怎么能得到整个对象树,一直到顶层 Category?
【问题讨论】: