我有一个如下所示的类结构。
CategoryA
{
CategoryB
{
CategoryC
{
}
}
}
我有一个 LINQ 查询来获取对象列表。
var ls = CategoryA.CategoryB.Where(x => x.CategoryBObjectId == someId);
这将返回 CategoryB 对象的列表。
然后我想要一些 CategoryC 对象。
var ls2= ls.Where(x=>x.Any(y=>y.CategoryCObjectId==someAnotherID))
但是 ls2 返回的是 CategoryB 对象。
我想要的是满足指定条件的 CategoryC 对象列表。
谁能帮我相应地更改 LINQ 查询?
最佳答案
使用 SelectMany。
var data = CategoryA.CategoryB
.Where(b => b.CategoryBObjectId == someBid)
.SelectMany(b => b.CategoryC)
.Where(c => c.CategoryCObjectId == someCid)
.ToList();
关于c# - LINQ-从包含三层的列表中检索对象的第三层列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29934610/