父类别包含子类别列表,子类别包含子类别列表。现在我想获取所有父类别,如果其状态为true以及子类别。我想在获取时检查子类别状态。我当前的查询是
db.Categories.Where(x => x.Status)
.Include(x=>x.SubCategories)
. OfType<ParentCategory>().ToList();
如何检查此查询中子类别的状态??
答案 0 :(得分:0)
尝试使用LINQ的SelectMany()
方法。它用于展平嵌套集合。我们可以使用更多的LINQ&#39;而不是使用嵌套的for循环。方式。
以下给出 -
Master m1 = new Master() { name = "A", lstObj = new List<obj> { new obj { i = 1, s = "C++" }, new obj { i = 1, s = "C#" }, new obj { i = 1, s = "Java" } } };
Master m2 = new Master() { name = "A", lstObj = new List<obj> { new obj { i = 4, s = "PHP" }, new obj { i = 5, s = "Ruby" }, new obj { i = 6, s = "Perl" } } };
List<Master> lstMasters = new List<Master> { m1, m2 };
var result = lstMasters.SelectMany(m => m.lstObj).Where(o => o.s == "PHP");
只需用您自己的主类替换Master类。