假设以下hierarichal父/子类别模型:
public class Category
{
public int CategoryId { get; set; }
public Category ParentCategory { get; set; }
public IList<Category> ChildCategories { get; set; }
public IList<Product> Products { get; set; }
}
我希望以包含至少一种产品的分层方式获取所有类别。
根类别
A1。子类别1(0个产品)
A2。子类别2(1个产品)
B1。子类别1(0个产品)
B2。子类别2(1个产品)
B3。子类别3(0产品)
预期结果是:
根类别
A1。子类别1
A2。子类别2
B1。子类别1
B2。子类别2
感谢。
答案 0 :(得分:0)
如果您使用的是Linq,那么这很简单。有点像:
var categoriesWithProducts = category.Where(x=> x.Products.Count() > 0)
答案 1 :(得分:0)
未经测试:
Category? GetNotEmpty(Category category)
{
Category returnCategory = new Category();
foreach(Category subCategory in category.ChildCategories)
if(GetNotEmpty(subCategory) != null) returnCategory.ChildCategories.Add(GetNotEmpty(subCategory));
if(returnCategory.ChildCategories.Count > 0 || returnCategory.Products.Count > 0) return returnCategory;
else return null;
}
并呼吁所有顶级类别。